Mybatisplus中的like查询问题

Gitana ·
更新时间:2024-11-10
· 196 次阅读

目录

Mybatis plus中like查询问题

解决方法也很简单,换个写法

Mybatis plus中like使用说明

like的四种用法

Mybatis plus中like查询问题

又谈到了Mybatis plus了,真的很是痛心疾首,在做模糊查询的时候出现了一个问题,版本还是2.0.8,我觉得大问题没有小问题不断吧!

上代码

        @MethodAnnot()         public static List<VwUserRole> getVwUserRoleByList(VwUserRole      vwUserRole){                 return vwUserRoleService.selectList(                         new EntityWrapper<VwUserRole>(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<VwUserRole> 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", "两边%");

以上为个人经验,希望能给大家一个参考,也希望大家多多支持软件开发网。



LIKE

需要 登录 后方可回复, 如果你还没有账号请 注册新账号