本章节将介绍 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