like 模糊查詢


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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM