MP---条件构造器

                         

理解

MyBatis-Plus 在 MyBatis 的基础上只做增强不做改变,简化开发、提高效率,引入它不会对现有工程产生影响。

 Lambda 形式调用:通过 Lambda 表达式,方便的编写各类查询条件

条件构造器用于构建复杂的数据库查询条件。Wrapper 类允许开发者以链式调用的方式构造查询条件,无需编写复杂条件。

AbstractWrapper

这是一个抽象基类,提供了所有 Wrapper 类共有的方法和属性。它定义了条件构造的基本逻辑,包括字段(column)、值(value)、操作符(condition)等。所有的 QueryWrapper、UpdateWrapper、LambdaQueryWrapper 和 LambdaUpdateWrapper 都继承AbstractWrapper。

LambdaQueryWrapper

这是一个基于 Lambda 表达式的查询条件构造器,它通过 Lambda 表达式来引用实体类的属性,从而避免了硬编码字段名。这种方式提高了代码的可读性和可维护性,尤其是在字段名可能发生变化的情况下。

自己构造出wrapper查询条件,然后把这个条件对象传给持久层方法。这里是进行员工列表的查询。

.select查询的字段,例:Emp::getId表示通过底层反射机制对Emp实体类中getId方法的引用。

.like模糊匹配,

.ge字段大于或等于某个值

@Test
void testLamdaWapper(){
    LambdaQueryWrapper<Emp> wrapper = new LambdaQueryWrapper<>();
    wrapper.select(Emp::getId,Emp::getUsername,Emp::getGender)
            .like(Emp::getUsername,"o")
            .ge(Emp::getJob,2);
    List<Emp> emps = empMapper.selectList(wrapper);
    emps.forEach(System.out::println);

}

 List<Emp> emps = empMapper.selectList(wrapper);将查询对象封装到列表,最后遍历。

 LambdaUpdateWrapper同理

.eq设置要更新的条件,通过链式设置以后,就不需要手动的设置实体对象了,所以为null

@Test
void testLambdaUpdateWrapper() {
    LambdaUpdateWrapper<Emp> updateWrapper = new LambdaUpdateWrapper<>();
    updateWrapper.eq(Emp::getUsername, "oldUsername")
                 .set(Emp::getUsername, "newUsername")
                 .set(Emp::getJob, 3);
    int rows = empMapper.update(null, updateWrapper);
    System.out.println("Updated rows: " + rows);
}

反射

反射机制是指程序在运行时能够动态地获取类的详细信息,并操作类或对象的属性和方法。它允许在编译期间不知道类、方法或字段的情况下,在运行时进行操作。

  • 7
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值