MyBatis-Plus 是 MyBatis 的增強工具,在 MyBatis 的基礎上只做增強不做改變,簡化開發、提高效率。其中,QueryWrapper 是 MyBatis-Plus 提供的一個強大的查詢條件構造器,可以方便地構建復雜的查詢條件。本文將詳細介紹如何使用 QueryWrapper 進行多條件查詢以及修改操作。
QueryWrapper 提供了豐富的方法來構建查詢條件,以下是一些常用的多條件查詢示例。
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” 的記錄。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 之間的記錄。QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.orderByAsc("age")
.last("limit 10");
List<User> userList = userMapper.selectList(queryWrapper);
orderByAsc("age"):按照 age 升序排序。last("limit 10"):限制查詢結果最多返回 10 條記錄。QueryWrapper 不僅可以用于查詢,還可以用于構建更新條件。以下是一些常用的修改操作示例。
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”。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。QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("status", 0);
int rows = userMapper.delete(queryWrapper);
eq("status", 0):刪除 status 等于 0 的記錄。QueryWrapper 是 MyBatis-Plus 中非常強大的工具,能夠幫助我們輕松構建復雜的查詢和更新條件。通過靈活使用 QueryWrapper 的各種方法,可以大大提高開發效率,減少代碼量。在實際開發中,建議根據具體需求選擇合適的條件構造方法,以達到最佳的查詢和更新效果。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。