溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

mybatis-plus怎么指定字段模糊查詢

發布時間:2022-04-28 10:19:54 來源:億速云 閱讀:1192 作者:iii 欄目:開發技術

MyBatis-Plus 怎么指定字段模糊查詢

MyBatis-Plus 是 MyBatis 的增強工具,在 MyBatis 的基礎上只做增強不做改變,簡化開發、提高效率。在實際開發中,模糊查詢是非常常見的需求。本文將詳細介紹如何在 MyBatis-Plus 中指定字段進行模糊查詢。

1. 使用 QueryWrapper 進行模糊查詢

QueryWrapper 是 MyBatis-Plus 提供的一個查詢條件構造器,可以方便地構建各種查詢條件。通過 QueryWrapper,我們可以輕松實現指定字段的模糊查詢。

1.1 基本用法

假設我們有一個 User 表,表結構如下:

CREATE TABLE user (
    id BIGINT PRIMARY KEY AUTO_INCREMENT,
    name VARCHAR(50),
    age INT,
    email VARCHAR(100)
);

我們想要查詢 name 字段中包含 “張” 的所有用戶,可以使用如下代碼:

QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.like("name", "張");
List<User> userList = userMapper.selectList(queryWrapper);

在這個例子中,like 方法用于構建模糊查詢條件,第一個參數是字段名,第二個參數是模糊查詢的值。

1.2 多字段模糊查詢

如果我們需要在多個字段上進行模糊查詢,可以使用 or 方法將多個條件連接起來。例如,我們想要查詢 nameemail 字段中包含 “張” 的所有用戶:

QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.like("name", "張").or().like("email", "張");
List<User> userList = userMapper.selectList(queryWrapper);

1.3 忽略大小寫模糊查詢

在某些情況下,我們可能希望模糊查詢忽略大小寫。MyBatis-Plus 提供了 likeRightlikeLeft 方法,分別表示右模糊查詢和左模糊查詢。例如:

QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.likeRight("name", "張");
List<User> userList = userMapper.selectList(queryWrapper);

likeRight("name", "張") 生成的 SQL 語句類似于 name LIKE '張%',表示查詢 name 字段以 “張” 開頭的記錄。

2. 使用 LambdaQueryWrapper 進行模糊查詢

LambdaQueryWrapperQueryWrapper 的 Lambda 表達式版本,可以通過 Lambda 表達式引用實體類的字段,避免硬編碼字段名。

2.1 基本用法

繼續以 User 表為例,我們可以使用 LambdaQueryWrapper 進行模糊查詢:

LambdaQueryWrapper<User> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.like(User::getName, "張");
List<User> userList = userMapper.selectList(lambdaQueryWrapper);

在這個例子中,User::getName 通過 Lambda 表達式引用了 User 類的 name 字段,避免了硬編碼字段名。

2.2 多字段模糊查詢

同樣地,我們可以在多個字段上進行模糊查詢:

LambdaQueryWrapper<User> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.like(User::getName, "張").or().like(User::getEmail, "張");
List<User> userList = userMapper.selectList(lambdaQueryWrapper);

2.3 忽略大小寫模糊查詢

使用 LambdaQueryWrapper 也可以實現忽略大小寫的模糊查詢:

LambdaQueryWrapper<User> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.likeRight(User::getName, "張");
List<User> userList = userMapper.selectList(lambdaQueryWrapper);

3. 使用注解進行模糊查詢

在某些情況下,我們可能希望在實體類中直接定義模糊查詢的條件。MyBatis-Plus 提供了 @TableField 注解,可以用于指定字段的查詢條件。

3.1 基本用法

User 實體類中,我們可以使用 @TableField 注解指定 name 字段的模糊查詢條件:

public class User {
    private Long id;

    @TableField(condition = SqlCondition.LIKE)
    private String name;

    private Integer age;

    private String email;

    // getters and setters
}

然后,我們可以直接使用 QueryWrapper 進行查詢:

QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.like("name", "張");
List<User> userList = userMapper.selectList(queryWrapper);

在這個例子中,@TableField(condition = SqlCondition.LIKE) 注解指定了 name 字段的查詢條件為 LIKE,因此在使用 like 方法時,MyBatis-Plus 會自動生成 name LIKE '%張%' 的 SQL 語句。

4. 總結

MyBatis-Plus 提供了多種方式來實現指定字段的模糊查詢,包括使用 QueryWrapper、LambdaQueryWrapper 以及 @TableField 注解。開發者可以根據實際需求選擇合適的方式來實現模糊查詢,從而提高開發效率。

通過本文的介紹,相信你已經掌握了在 MyBatis-Plus 中指定字段進行模糊查詢的方法。在實際開發中,靈活運用這些方法,可以大大簡化代碼,提高開發效率。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女