本章节将介绍 like、notLike、likeRight、likeLeft 条件,
like(完全模糊,即“like '%val%'”)
1 2 | like(R column, Object val) like( boolean condition, R column, Object val) |
参数说明:
column:要用于条件筛选的数据库表列名称,如:name
val:用于指定数据表列的值,条件将根据该值进行筛选
condition:用于指定当前这个条件是否有效;如果为 true,则应用当前条件;如果为 false,则忽略当前条件。
实例:查询用户名称中包含“王”值的用户信息,如下:
1 2 | QueryWrapper<UserBean> wrapper = new QueryWrapper<>(); wrapper.like( "name" , "王" ); // 等价 SQL 语句:name like '%王%' |
notLike(完全模糊取非,即“not like '%val%'”)
1 2 | notLike(R column, Object val) notLike( boolean condition, R column, Object val) |
参数说明:
column:要用于条件筛选的数据库表列名称,如:name
val:用于指定数据表列的值,条件将根据该值进行筛选
condition:用于指定当前这个条件是否有效;如果为 true,则应用当前条件;如果为 false,则忽略当前条件。
实例:查询用户包含“王”值的用户信息,如下:
1 2 | QueryWrapper<UserBean> wrapper = new QueryWrapper<>(); wrapper.notLike( "name" , "王" ); // 等价 SQL 语句:name not like '%王%' |
likeLeft(仅左边模糊,即“like '%val'”)
1 2 | likeLeft(R column, Object val) likeLeft( boolean condition, R column, Object val) |
参数说明:
column:要用于条件筛选的数据库表列名称,如:name
val:用于指定数据表列的值,条件将根据该值进行筛选
condition:用于指定当前这个条件是否有效;如果为 true,则应用当前条件;如果为 false,则忽略当前条件。
实例:查询用户名以“王”值结束的用户信息列表,如下:
1 2 | QueryWrapper<UserBean> wrapper = new QueryWrapper<>(); wrapper.likeLeft( "name" , "王" ); // 等价 SQL 语句:name like '%王' |
likeRight(仅右边模糊,即“like 'val%'”)
1 2 | likeRight(R column, Object val) wrapper.likeRight( boolean condition, R column, Object val) |
参数说明:
column:要用于条件筛选的数据库表列名称,如:name
val:用于指定数据表列的值,条件将根据该值进行筛选
condition:用于指定当前这个条件是否有效;如果为 true,则应用当前条件;如果为 false,则忽略当前条件。
实例:查询用户名以“王”值开始的用户信息列表,如下:
1 2 | QueryWrapper<UserBean> wrapper = new QueryWrapper<>(); likeRight( "name" , "王" ); // 等价 SQL 语句:name like '王%' |
示例代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 | package com.hxstrive.mybatis_plus.simple_mapper.condition; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.hxstrive.mybatis_plus.mapper.SimpleMapper; import com.hxstrive.mybatis_plus.model.UserBean; import org.junit.jupiter.api.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.junit4.SpringRunner; import java.util. List ; @RunWith (SpringRunner. class ) @SpringBootTest class Condition7Test { @Autowired private SimpleMapper simpleMapper; @Test void contextLoads() { System .out.println( "================== 分割线 (like '%佳%') ===================" ); QueryWrapper<UserBean> wrapper = new QueryWrapper<>(); wrapper.like( "name" , "佳" ); List <UserBean> userBeanList = simpleMapper.selectList(wrapper); for (UserBean userBean : userBeanList) { System .out.println(userBean); } System .out.println( "================== 分割线 (not like '%佳%') ===================" ); wrapper = new QueryWrapper<>(); wrapper.notLike( "name" , "佳" ); userBeanList = simpleMapper.selectList(wrapper); System .out.println( "result size=" + userBeanList.size()); for ( int i = 0 ; i < (userBeanList.size() > 10 ? 10 : userBeanList.size()); i++) { System .out.println(userBeanList.get(i)); } System .out.println( "================== 分割线 (like '黄%') ===================" ); wrapper = new QueryWrapper<>(); wrapper.likeRight( "name" , "黄" ); userBeanList = simpleMapper.selectList(wrapper); for (UserBean userBean : userBeanList) { System .out.println(userBean); } System .out.println( "================== 分割线 (like '%佳') ===================" ); wrapper = new QueryWrapper<>(); wrapper.likeLeft( "name" , "佳" ); userBeanList = simpleMapper.selectList(wrapper); for (UserBean userBean : userBeanList) { System .out.println(userBean); } } } |
运行上面程序,将执行如下 SQL 代码:
1 2 3 4 5 6 7 8 | Preparing: SELECT user_id,name,sex,age,face,salary,borthday FROM user WHERE (name LIKE ?) Parameters: %佳%( String ) Preparing: SELECT user_id,name,sex,age,face,salary,borthday FROM user WHERE (name NOT LIKE ?) Parameters: %佳%( String ) Preparing: SELECT user_id,name,sex,age,face,salary,borthday FROM user WHERE (name LIKE ?) Parameters: 黄%( String ) Preparing: SELECT user_id,name,sex,age,face,salary,borthday FROM user WHERE (name LIKE ?) Parameters: %佳( String ) |
本文转摘: https://www.hxstrive.com/subject/mybatis_plus.htm?id=292