MyBatis-Plus 是 MyBatis 的增強工具,提供了許多便捷的功能來簡化數據庫操作。其中,QueryWrapper 是一個非常常用的類,用于構建查詢條件。本文將介紹 QueryWrapper 的常用方法,幫助你更好地使用 MyBatis-Plus 進行數據庫查詢。
eq 方法eq 方法用于構建等于條件。
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("name", "張三");
List<User> userList = userMapper.selectList(queryWrapper);
上述代碼會生成如下 SQL 語句:
SELECT * FROM user WHERE name = '張三';
ne 方法ne 方法用于構建不等于條件。
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.ne("name", "張三");
List<User> userList = userMapper.selectList(queryWrapper);
生成的 SQL 語句:
SELECT * FROM user WHERE name <> '張三';
gt 方法gt 方法用于構建大于條件。
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.gt("age", 18);
List<User> userList = userMapper.selectList(queryWrapper);
生成的 SQL 語句:
SELECT * FROM user WHERE age > 18;
ge 方法ge 方法用于構建大于等于條件。
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.ge("age", 18);
List<User> userList = userMapper.selectList(queryWrapper);
生成的 SQL 語句:
SELECT * FROM user WHERE age >= 18;
lt 方法lt 方法用于構建小于條件。
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.lt("age", 30);
List<User> userList = userMapper.selectList(queryWrapper);
生成的 SQL 語句:
SELECT * FROM user WHERE age < 30;
le 方法le 方法用于構建小于等于條件。
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.le("age", 30);
List<User> userList = userMapper.selectList(queryWrapper);
生成的 SQL 語句:
SELECT * FROM user WHERE age <= 30;
like 方法like 方法用于構建模糊查詢條件。
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.like("name", "張");
List<User> userList = userMapper.selectList(queryWrapper);
生成的 SQL 語句:
SELECT * FROM user WHERE name LIKE '%張%';
likeLeft 方法likeLeft 方法用于構建左模糊查詢條件。
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.likeLeft("name", "張");
List<User> userList = userMapper.selectList(queryWrapper);
生成的 SQL 語句:
SELECT * FROM user WHERE name LIKE '%張';
likeRight 方法likeRight 方法用于構建右模糊查詢條件。
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.likeRight("name", "張");
List<User> userList = userMapper.selectList(queryWrapper);
生成的 SQL 語句:
SELECT * FROM user WHERE name LIKE '張%';
between 方法between 方法用于構建范圍查詢條件。
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.between("age", 18, 30);
List<User> userList = userMapper.selectList(queryWrapper);
生成的 SQL 語句:
SELECT * FROM user WHERE age BETWEEN 18 AND 30;
notBetween 方法notBetween 方法用于構建不在某個范圍內的查詢條件。
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.notBetween("age", 18, 30);
List<User> userList = userMapper.selectList(queryWrapper);
生成的 SQL 語句:
SELECT * FROM user WHERE age NOT BETWEEN 18 AND 30;
orderByAsc 方法orderByAsc 方法用于構建升序排序條件。
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.orderByAsc("age");
List<User> userList = userMapper.selectList(queryWrapper);
生成的 SQL 語句:
SELECT * FROM user ORDER BY age ASC;
orderByDesc 方法orderByDesc 方法用于構建降序排序條件。
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.orderByDesc("age");
List<User> userList = userMapper.selectList(queryWrapper);
生成的 SQL 語句:
SELECT * FROM user ORDER BY age DESC;
groupBy 方法groupBy 方法用于構建分組條件。
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.groupBy("age");
List<User> userList = userMapper.selectList(queryWrapper);
生成的 SQL 語句:
SELECT * FROM user GROUP BY age;
select 方法select 方法用于指定查詢的字段。
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.select("id", "name", "age");
List<User> userList = userMapper.selectList(queryWrapper);
生成的 SQL 語句:
SELECT id, name, age FROM user;
in 方法in 方法用于構建 IN 查詢條件。
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.in("age", Arrays.asList(18, 20, 22));
List<User> userList = userMapper.selectList(queryWrapper);
生成的 SQL 語句:
SELECT * FROM user WHERE age IN (18, 20, 22);
notIn 方法notIn 方法用于構建 NOT IN 查詢條件。
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.notIn("age", Arrays.asList(18, 20, 22));
List<User> userList = userMapper.selectList(queryWrapper);
生成的 SQL 語句:
SELECT * FROM user WHERE age NOT IN (18, 20, 22);
isNull 方法isNull 方法用于構建 IS NULL 查詢條件。
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.isNull("name");
List<User> userList = userMapper.selectList(queryWrapper);
生成的 SQL 語句:
SELECT * FROM user WHERE name IS NULL;
isNotNull 方法isNotNull 方法用于構建 IS NOT NULL 查詢條件。
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.isNotNull("name");
List<User> userList = userMapper.selectList(queryWrapper);
生成的 SQL 語句:
SELECT * FROM user WHERE name IS NOT NULL;
and 方法and 方法用于構建 AND 條件。
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("name", "張三").and(wrapper -> wrapper.gt("age", 18).lt("age", 30));
List<User> userList = userMapper.selectList(queryWrapper);
生成的 SQL 語句:
SELECT * FROM user WHERE name = '張三' AND (age > 18 AND age < 30);
or 方法or 方法用于構建 OR 條件。
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("name", "張三").or().eq("name", "李四");
List<User> userList = userMapper.selectList(queryWrapper);
生成的 SQL 語句:
SELECT * FROM user WHERE name = '張三' OR name = '李四';
QueryWrapper 提供了豐富的查詢方法,能夠滿足大多數數據庫查詢需求。通過靈活組合這些方法,可以輕松構建復雜的查詢條件。掌握這些常用方法,將大大提高你在使用 MyBatis-Plus 進行數據庫操作時的效率。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。