条件构造器的用法

  1. QueryWrapper和LambdaQueryWrapper通常用来构架select、delete、update的where条件部分
  2. UpdateWrapper和LambdaUpdateWrapper通常只有在set语句比较特殊才使用
  3. 尽量使用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);
    }