本章節將介紹 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