mybatis-plus 所遇到的问题
一、分页问题
一、mybatis-plus进行分页时,首先需要配置分页拦截器
//**
* 新的分页插件,一缓和二缓遵循mybatis的规则,需要设置 MybatisConfiguration#useDeprecatedExecutor = false 避免缓存出现问题(该属性会在旧插件移除后一同移除)
*//*
@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor() {
MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.POSTGRE_SQL));
return interceptor;
}
二、注意数据源问题,如果是有两个以上的数据源 ,注意添加到对应的数据源当中
//分页插件
MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.POSTGRE_SQL));
sqlSessionFactory.setPlugins(new Interceptor[]{interceptor});
二、mybatis-plus函数式拼接查询条件
String name = "张三";
LambdaQueryWrapper<User> lqw = new LambdaQueryWrapper<User>();
lqw.eq(User::getName, name);
List<User> userList = userMapper.selectList(lqw);或者
Page<User> page = new Page<>(1,10);
userMapper.selectPage(page,Wrappers.<User>lambdaQuery().eq(User::getName, name))
当使用mybatisplus框架进行条件查询时,会出现参数为空字符串或者null也走查询条件
// 当name为空字符串或null时,最后生成的sql会变成
SELECT * FROM user WHERE name = '';
SELECT * FROM user WHERE name = null;
mybatisplus的条件构造器方法 eq()、like()等这些方法能支持第三个参数 condition

condition是一个布尔值,当condition为false
时,当前这个条件方法不会生效,即生成的sql不会拼接这个条件;所以在这个参数里判断查询参数是否为空即可
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)