一、querywrapper.like介绍
querywrapper.like
是Mybatis-plus中查询条件构造器中的一个方法,用于生成模糊查询的SQL语句,在实际开发中可以通过这个方法实现很多实用的功能。
querywrapper.like
的基本语法如下:
QueryWrapper<T> queryWrapper = new QueryWrapper<>();
queryWrapper.like("COLUMN_NAME", "PARAM");
其中,COLUMN_NAME
为要进行模糊查询的表列名,PARAM
为要查询的参数值。
querywrapper.like
的语法相对简单,但通过不同的使用方法,可以实现很多不同的功能。
二、根据单个字段进行模糊查询
querywrapper.like
最常用的方式是根据单个字段进行模糊查询,这里举例查询用户表(user)中所有名字中含有“张”的用户:
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.like("name", "张");
List<User> userList = userService.list(queryWrapper);
其中,name
为user表中的列名,代表用户的名字。%
代表任意多个字符,_
代表一个字符。因此,“%张%”代表包含“张”的名字。
执行结果:返回所有名字中含有“张”的用户列表。
三、根据多个字段进行模糊查询
有时候我们需要根据多个字段来进行模糊查询,例如查询用户表中所有名字或邮箱中包含“张”的用户:
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.like("name", "张").or().like("email", "张");
List<User> userList = userService.list(queryWrapper);
其中,name
和email
都是user表中的列名,代表用户的名字和邮箱。or()
表示或者的关系,两边的条件只要满足一个就可以查询出来。
执行结果:返回所有名字或邮箱中含有“张”的用户列表。
四、匹配左边或右边的模糊查询
有时候我们希望查询左边或右边的字符是否与所查询的字符串相匹配,这时需要用到如下代码:
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.likeRight("name", "张");
List<User> userList = userService.list(queryWrapper);
其中,likeRight
表示查询右边的字符是否匹配,likeLeft
则表示查询左边的字符是否匹配。
执行结果:返回所有以“张”结尾的用户名的用户列表。
五、模糊查询并限制查询结果数
有时候我们需要查询满足条件的前N条记录,这时需要用到如下代码:
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.like("name", "张").last("LIMIT 10");
List<User> userList = userService.list(queryWrapper);
使用last
方法在SQL语句的末尾加入自定义内容,这样就可以对查询结果进行限制,查询结果只包含前10条。
执行结果:返回所有名字中含有“张”的前10条用户列表。