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("----------------------------------------");
}