一、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-hant/n/242322.html