mybatins-plus Wrapper

创建时间:2025-11-16 16:46
长度:1610
浏览:0
评论:0

1. condition

   可以用于创建动态的查询条件

    @Test
    void test01() {
        System.out.println("----------------------------------------");
        String name = "H";
        Integer age = null;

        QueryWrapper<User> wrapper = new QueryWrapper<>();
        wrapper.like(StringUtils.isBlank(name), "name", name)
                .ge(age != null, "age", age);

        List<User> users = userMapper.selectList(wrapper);

        users.forEach(System.out::println);
    }

  上面例子中:因为age是空的,所以age 条件不会加入到查询sql中


2. QueryWrapper 执行修改和删除操作

@Test
void  test02() {
    System.out.println("----------------------------------------");
    QueryWrapper<User> wrapper = new QueryWrapper<>();
    wrapper.eq("id", 5);

    User user = new User();
    user.setName("Huangcy");
    userMapper.update(user, wrapper);
}

删除同理


3. UpdateWrapper

   继承AbstractWrrapper, 自身的内部属性entity也用于生成where 条件;

   可以通过set方法进行修改

    @Test
    void test03() {
        System.out.println("----------------------------------------");
        UpdateWrapper<User> wrapper = new UpdateWrapper<>();
        wrapper.eq("id", 1989122183496978434L).set("name", "Tom");

        userMapper.update(null, wrapper);
    }


4. LambdaQueryWrapper 和LambdaUpdateWrapper的区别

   这两个的主要目的是为了防止编写代码时,字佑名称编写错误;

   QueryWrapper - 字符串字段名

   LambdaQueryWrapper - 方法引用

@Test
void test04() {
    System.out.println("----------------------------------------");
    LambdaQueryWrapper<User> wrapper = new LambdaQueryWrapper<>();
    wrapper.like(User::getName, "Huang").ge(User::getAge, 18);
    userMapper.selectList(wrapper).forEach(System.out::println);
    System.out.println("----------------------------------------");
}





评论(共0条)