mybatis自动生成mapper中的insert与insertseletive,updateByPrimaryKey,updateByPrimaryKeySelective方法的区别

对于insert:
//插入一条数据
//支持Oracle序列,UUID,类似Mysql的INDENTITY自动增长(自动回写)
//优先使用传入的参数值,参数值空时,才会使用序列、UUID,自动增长
但是要注意假如数据库字段有default,default是不会起作用的
对于InsertSelective:
//插入一条数据,只插入不为null的字段,不会影响有默认值的字段
//支持Oracle序列,UUID,类似Mysql的INDENTITY自动增长(自动回写)
//优先使用传入的参数值,参数值空时,才会使用序列、UUID,自动增长
insertSelective不会忽略default,即为空的字段default自动填充
对于updateByPrimaryKey:
//对你注入的字段全部更新(不判断是否为Null)
对于updateByPrimaryKeySelective:
//会对字段进行判断再更新(如果为Null就忽略更新)
区别了这些就很容易根据业务来选择服务层的调用了!
详情可以查看generator生成的ObjectNameMapper.xml源代码!

posted @ 2020-12-20 22:26  Harper2  阅读(362)  评论(0编辑  收藏  举报