时间:2021-05-19
最近在使用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));
补充: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(),直接使用
这一部分对应的SQL语句是不会被括号包围的(若使用or(…),同理);
2. and(…)中的wrapper -> wrapper,注意名称需要相同。
到此这篇关于关于MyBatis Plus中使用or和and问题的文章就介绍到这了,更多相关MyBatis Plus使用or和and内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
最近项目中使用了MyBatis-Plus,点击看官方文档。使用一个新的框架,首先是验证框架的使用。使用MyBatis-Plus,首先就验证一下能否成功操作(CR
mybatis-plus版本不兼容问题1,mybatis-plus版本中存在一个问题。2,mybatis-plus-extension版本为v3.2.1.1-S
1、使用mybatis-plus自身的查询构造去,只需要在全局配置中添加如下配置mybatis-plus:mapper-locations:classpath:
1.新建一个springboot工程2.需要导入mybatis和mybatis-plus的依赖文件com.baomidoumybatis-plus-boot-s
在使用springboot集成mybatis-plus的过程中遇到的问题如图,首先我放xml的包的是没问题的,而是引入的架包和配置问题,问题配置如下解决方法:请