一、QueryWrapper概述
QueryWrapper是MyBatis-Plus提供的一個強大的條件構造器,它可以幫助我們簡化SQL語句的編寫以及提高開發效率。QueryWrapper可以讓開發者在使用MyBatis-Plus時輕鬆構造複雜查詢條件,支持連綴操作,也即是鏈式調用。
二、QueryWrapperge的基礎用法
1. 查詢單條記錄
使用QueryWrapper的getOne()方法可以查詢滿足條件的一條記錄,並且只返回第一條匹配的記錄。
QueryWrapper<User> wrapper = new QueryWrapper<>();
wrapper.eq("name", "John").eq("age", 20);
User user = userMapper.selectOne(wrapper);
2. 查詢多條記錄
使用QueryWrapper的selectList()方法可以查詢所有滿足條件的記錄。
QueryWrapper<User> wrapper = new QueryWrapper<>();
wrapper.between("age", 18, 25).orderByDesc("age");
List<User> userList = userMapper.selectList(wrapper);
3. 查詢記錄數量
使用QueryWrapper的selectCount()方法可以查詢滿足條件的記錄數量。
QueryWrapper<User> wrapper = new QueryWrapper<>();
wrapper.ge("age", 18).le("age", 25);
long count = userMapper.selectCount(wrapper);
三、QueryWrapperge的高級用法
1. 查詢指定欄位
使用QueryWrapper的select()方法可以指定查詢出哪些欄位,例如:
QueryWrapper<User> wrapper = new QueryWrapper<>();
wrapper.select("id", "name", "age");
List<User> userList = userMapper.selectList(wrapper);
2. 分頁查詢
使用QueryWrapper的Page類可以實現分頁查詢,例如:
QueryWrapper<User> wrapper = new QueryWrapper<>(); Page<User> page = new Page<>(1, 10); IPage<User> userPage = userMapper.selectPage(page, wrapper); // 調用方法處理結果 List<User> userList = userPage.getRecords(); long total = userPage.getTotal();
3. 動態SQL構造
QueryWrapper可以實現複雜的動態SQL構造,例如:
String name = "John";
Integer age = 20;
QueryWrapper<User> wrapper = new QueryWrapper<>();
wrapper.eq("is_deleted", 0);
if(StringUtils.isNotEmpty(name)){
wrapper.eq("name", name);
}
if(age != null){
wrapper.ge("age", age);
}
List<User> userList = userMapper.selectList(wrapper);
四、QueryWrapperge的更新操作
QueryWrapper也可以用於更新操作,例如:
QueryWrapper<User> wrapper = new QueryWrapper<>();
wrapper.eq("id", 1);
User updateUser = new User();
updateUser.setName("John");
updateUser.setAge(22);
userMapper.update(updateUser, wrapper);
五、QueryWrapperge的刪除操作
QueryWrapper也可以用於刪除操作,例如:
QueryWrapper<User> wrapper = new QueryWrapper<>();
wrapper.eq("id",1);
userMapper.delete(wrapper);
總結
QueryWrapper是一個功能強大且易於使用的條件構造器,在開發中不可或缺。通過本文的介紹,我們可以了解到其基礎用法和高級用法,以及和更新、刪除操作的結合使用。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/242322.html
微信掃一掃
支付寶掃一掃