2022-06-28 05:55:16 来源 : 软件开发网
Mybatis plus中like查询问题
【资料图】
解决方法也很简单,换个写法
Mybatis plus中like使用说明
like的四种用法
Mybatis plus中like查询问题又谈到了Mybatis plus了,真的很是痛心疾首,在做模糊查询的时候出现了一个问题,版本还是2.0.8,我觉得大问题没有小问题不断吧!
上代码
@MethodAnnot() public static List getVwUserRoleByList(VwUserRole vwUserRole){ return vwUserRoleService.selectList( new EntityWrapper(vwUserRole).like("username",vwUserRole.getUsername(), SqlLike.DEFAULT)); }
模糊查询USER,讲道理来说是没有问题的,下面我们查一下这个SQL是什么
SELECT id,username,del_flag AS delFlag FROM vw_user_role WHERE username="a" AND del_flag="0" AND (username LIKE "%a%")
应该一下就可以看的出来 这样的查询语法怎么可能查询的出来数据呢?我觉得这算是一个Mybatis plus的Bug的吧!
解决方法也很简单,换个写法@MethodAnnot() public static List getVwUserRoleByList(VwUserRole vwUserRole){ EntityWrapper ew=new EntityWrapper(); ew.setEntity(new VwUserRole()); ew.eq("del_flag","0"); ew.like("username",vwUserRole.getUsername(), SqlLike.DEFAULT); return vwUserRoleService.selectList(ew); }
我们看一下这样查询的SQL是什么
SELECT id,username,del_flag AS delFlag FROM vw_user_role WHERE (del_flag = 0 AND username LIKE "%a%")
这样是一点问题也没有的哦,应该能看出问题在那里吧?哈哈哈,不说了。
感觉还有好多地方会有坑等着我,踩一个坑记录一下吧!!!
Mybatis plus中like使用说明like的四种用法like(boolean condition, String column, String value)like(String column, String value)like(boolean condition, String column, String value, SqlLike type)like(String column, String value, SqlLike type)
condition
是一些条件,符合才可加上你的sql
column
为 数据库属性
value
为 你传入的值
type
为 % 拼在那边:
SqlLike
为枚举类
LEFT("left", "左边%"), RIGHT("right", "右边%"), CUSTOM("custom", "定制"), DEFAULT("default", "两边%");
以上为个人经验,希望能给大家一个参考,也希望大家多多支持软件开发网。