溫馨提示×

溫馨提示×

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

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

MyBatisPlus QueryWrapper多條件查詢及修改方法是什么

發布時間:2022-09-21 17:16:52 來源:億速云 閱讀:734 作者:iii 欄目:開發技術

MyBatisPlus QueryWrapper多條件查詢及修改方法是什么

MyBatis-Plus 是 MyBatis 的增強工具,在 MyBatis 的基礎上只做增強不做改變,簡化開發、提高效率。其中,QueryWrapper 是 MyBatis-Plus 提供的一個強大的查詢條件構造器,可以方便地構建復雜的查詢條件。本文將詳細介紹如何使用 QueryWrapper 進行多條件查詢以及修改操作。

1. QueryWrapper 多條件查詢

QueryWrapper 提供了豐富的方法來構建查詢條件,以下是一些常用的多條件查詢示例。

1.1 基本查詢

QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("name", "張三")
            .ge("age", 18)
            .le("age", 30)
            .like("email", "@example.com");
List<User> userList = userMapper.selectList(queryWrapper);
  • eq("name", "張三"):查詢 name 等于 “張三” 的記錄。
  • ge("age", 18):查詢 age 大于等于 18 的記錄。
  • le("age", 30):查詢 age 小于等于 30 的記錄。
  • like("email", "@example.com"):查詢 email 包含 “@example.com” 的記錄。

1.2 多條件組合

QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.and(wrapper -> wrapper.eq("name", "張三").or().eq("name", "李四"))
            .between("age", 20, 25);
List<User> userList = userMapper.selectList(queryWrapper);
  • and(wrapper -> wrapper.eq("name", "張三").or().eq("name", "李四")):查詢 name 等于 “張三” 或 “李四” 的記錄。
  • between("age", 20, 25):查詢 age 在 20 到 25 之間的記錄。

1.3 排序和分頁

QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.orderByAsc("age")
            .last("limit 10");
List<User> userList = userMapper.selectList(queryWrapper);
  • orderByAsc("age"):按照 age 升序排序。
  • last("limit 10"):限制查詢結果最多返回 10 條記錄。

2. QueryWrapper 修改方法

QueryWrapper 不僅可以用于查詢,還可以用于構建更新條件。以下是一些常用的修改操作示例。

2.1 根據條件更新

UpdateWrapper<User> updateWrapper = new UpdateWrapper<>();
updateWrapper.eq("name", "張三")
             .set("age", 25)
             .set("email", "zhangsan@example.com");
int rows = userMapper.update(null, updateWrapper);
  • eq("name", "張三"):更新 name 等于 “張三” 的記錄。
  • set("age", 25):將 age 更新為 25。
  • set("email", "zhangsan@example.com"):將 email 更新為 “zhangsan@example.com”。

2.2 批量更新

UpdateWrapper<User> updateWrapper = new UpdateWrapper<>();
updateWrapper.in("id", Arrays.asList(1, 2, 3))
             .set("status", 1);
int rows = userMapper.update(null, updateWrapper);
  • in("id", Arrays.asList(1, 2, 3)):更新 id 在 1, 2, 3 中的記錄。
  • set("status", 1):將 status 更新為 1。

2.3 條件刪除

QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("status", 0);
int rows = userMapper.delete(queryWrapper);
  • eq("status", 0):刪除 status 等于 0 的記錄。

3. 總結

QueryWrapper 是 MyBatis-Plus 中非常強大的工具,能夠幫助我們輕松構建復雜的查詢和更新條件。通過靈活使用 QueryWrapper 的各種方法,可以大大提高開發效率,減少代碼量。在實際開發中,建議根據具體需求選擇合適的條件構造方法,以達到最佳的查詢和更新效果。

向AI問一下細節

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

AI

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