关于MyBatis Plus中使用or和and问题
最近在使用MyBatis Plus,发现在拼接条件的时候,and和or会出问题,比如下面这种
QueryWrapper userWrapper = new QueryWrapper();
userWrapper.eq(“name”, name); userWrapper.eq(“pwd”,
pwd).or().eq(“phone”, phone);
这种写法拼出来的SQL语句是这样的:
select * from user where (name = ? and pwd= ? or phone = ?)
这样子是肯定不行的,于是去官网查询,发现正确的写法是这样的
QueryWrapper userWrapper = new QueryWrapper();
userWrapper.eq(“name”, name); userWrapper.and(wrapper ->wrapper.eq(“pwd”, pwd).or().eq(“phone”, phone));
select * from user where name = ? and ( pwd= ? or phone = ?)
补充:MyBatisPlus中and与or的连用
QueryWrapper<User> userWrapper = new QueryWrapper<>(); String type = (String) map.get("type"); if(StringUtils.isNotBlank(type)) { userWrapper.eq("is_admin", "admin".equals(type) ? true : false); } String keys = (String) map.get("key"); if(StringUtils.isNotBlank(keys)) { userWrapper.and(wrapper -> wrapper.like("login_name", keys).or().like("tel", keys).or().like("email", keys)); }
对应打印的SQL语句为:
SELECT id, login_name AS loginName, is_admin AS adminUser, ... del_flag AS delFlag, remarks FROM sys_user WHERE is_admin = 0 AND ( login_name LIKE '%j%' OR tel LIKE '%j%' OR email LIKE '%j%' )
注意:
userWrapper.and(…)中的and为后面的条件加上了括号,如果没有and(),直接使用
userWrapper.like("login_name", keys).or().like("tel", keys).or().like("email", keys)
这一部分对应的SQL语句是不会被括号包围的(若使用or(…),同理);
2. and(…)中的wrapper -> wrapper,注意名称需要相同。
到此这篇关于关于MyBatis Plus中使用or和and问题的文章就介绍到这了,更多相关MyBatis Plus使用or和and内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
ThreadPoolExecutor线程池原理及其execute方法(详解)
下面小编就为大家带来一篇ThreadPoolExecutor线程池原理及其execute方法(详解)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧2017-06-06Spring Boot配置接口WebMvcConfigurer的实现
这篇文章主要介绍了SpringBoot配置接口WebMvcConfigurer的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2019-11-11SpringBoot项目导入aliyun oss starter依赖后启动报错问题
这篇文章主要介绍了SpringBoot项目导入aliyun oss starter依赖后启动报错问题及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教2024-01-01使用Spring开启@Async异步方式(javaconfig配置)
这篇文章主要介绍了使用Spring开启@Async异步方式(javaconfig配置),具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2021-08-08grade构建阅读spring源码环境 Idea2020.3的过程
这篇文章主要介绍了grade构建阅读spring源码环境 Idea2020.3,本文分步骤通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2020-10-10
最新评论