selectOne和selectList
selectOne 如果没有数据会得到null
selectList 如果没有数据会得到长度为0的list
自动填充
任何使用wrapper的时候,自动填充都是失效的,必须带实体类,可以new一个
更新字段为null
默认情况: 全局配置默认值为not_null,传递的参数中某个字段为null,则默认不会对为null的字段更新成null
1.@TableField(strategy = FieldStrategy.IGNORED)(不推荐)
不赋值就会更新为null
2.全局配置(不推荐)
mybatis-plus:
global-config:
db-config:
insert-strategy: ignored
update-strategy: ignored
select-strategy: ignored
3.使用条件构造器(推荐)
.set(User::getName,null)
FieldStrategy.NOT_NULL:不为null则更新,也就是字段值为null则不生成到sql中不更新该字段,如果字段值为""(空字符串)也是会更新的
FieldStrategy.NOT_EMPTY:不为空则更新,也就是该字段值为null或为""(空字符串)都不会更新
FieldStrategy.DEFAULT:默认值,和全局配置保持一致,也就是和下面的第四种方式中的配置保持一致
FieldStrategy.IGNORED:忽略判断,该字段值不论是什么,都进行更新
FieldStrategy.NEVER:不做更新操作,该字段值不论是什么,都不进行更新
OrderItem排序
Page<StudentInsuranceDTO> iPage = new Page<>();
OrderItem orderItem = new OrderItem();
// 这里可以拼接别名 "t."
orderItem.setColumn(obc);
orderItem.setAsc("asc".equals(ia));
iPage.setOrders(Arrays.asList(orderItem));