条件构造器的用法
- QueryWrapper和LambdaQueryWrapper通常用来构架select、delete、update的where条件部分
- UpdateWrapper和LambdaUpdateWrapper通常只有在set语句比较特殊才使用
- 尽量使用LambdaQueryWrapper和LambdaUpdateWrapper,避免硬编码
SELECT id, username, password, info, money
FROM user
WHERE username LIKE "maolinwang" AND money >= 10000;
@Test
void testQueryWrapper() {
// 1.构建查询条件
QueryWrapper<User> wrapper = new QueryWrapper<User>()
.select("id","username", "password", "info", "money")
.like("username", "maolinwang")
.ge("money", 10000);
// 2.查询
List<User> users = userMapper.selectList(wrapper);
}
UPDATE user
SET password = "123456;
WHERE username = "maolinwang";
@Test
void testUpdateByQueryWrapper() {
// 1.要更新的数据
User user = new User();
user.setPassword("123456");
// 2.更新的条件
QueryWrapper<User> wrapper = new QueryWrapper<User>().eq("username", "maolinwang");
// 3.执行更新
userMapper.update(user, wrapper);
}
UPDATE user
SET money = money + 2000
WHERE id in (1, 2, 3)
@Test
void testUpdateWrapper() {
List<Long> ids = List.of(1L, 2L, 3L);
// 1.更新的条件
UpdateWrapper<User> wrapper = new UpdateWrapper<User>()
.setSql("money = money + 2000")
.in("id", ids);
// 2.执行更新
userMapper.update(null, wrapper);
}
@Test
void testLambdaQueryWrapper() {
// 1.构建查询条件
LambdaQueryWrapper<User> wrapper = new LambdaQueryWrapper<User>()
.select(User::getAutoId,User::getUserName, User::getPassword)
.like(User::getUserName, "maolinwang")
.ge(User::getAutoId, 10000);
// 2.查询
List<User> users = userMapper.selectList(wrapper);
}