MyBatisPlus系列第三篇:MyBatisPlus-条件构造器EntityWrapper


前言

条件构造器查看

一、EntityWrapper简介

1、MyBatisPlus是通过EntityWrapper(简称EW,MP封装的一个查询条件构造器)或者Condition(与EW类似)来让用户自由的构建查询条件,简单编辑、提高开发效率

2、实体包装器、主要用于处理SQL拼接、排序、实体参数查询等

3、注意:使用的是数据库字段、不是Java属性!

4、条件参数说明:
在这里插入图片描述

二、使用EntityWrapper的方式条件查询分页

    /**
     * 条件构造器查询
     */
    @Test
    public void testEntityWrapper(){
        //我们要分页查询Employee表中、年龄在19-50之间、性别为男性且姓名为Tom的用户
        // Preparing: SELECT id AS id,last_name AS lastName,email,gender,age FROM tbl_employee WHERE (age BETWEEN ? AND ? AND gender = ? AND last_name = ?)  
        List<Employee> employeeList= employeeMapper.selectPage(new Page<Employee>(1, 2),
                        new EntityWrapper<Employee>()
                        .between("age", 18, 50)
                        .eq("gender",1)
                        .eq("last_name", "Tom"));
        System.out.println(employeeList);
    }

三、带条件的查询

        //查询性别女 并且名字带有老师或者邮箱中带有a
        List<Employee> employees = employeeMapper.selectList(new EntityWrapper<Employee>()
                .eq("gender", 0)
                .like("last_name", "老师")
                //.or()// SELECT id AS id,last_name AS lastName,email,gender,age FROM tbl_employee WHERE (gender = ? AND last_name LIKE ? OR email LIKE ?)
                .orNew()//Preparing: SELECT id AS id,last_name AS lastName,email,gender,age FROM tbl_employee WHERE (gender = ? AND last_name LIKE ?) OR (email LIKE ?)  
                .like("email", "a")
        );
        System.out.println(employees);

四、带条件的修改

public class TestMp {
    private ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");

    private EmployeeMapper employeeMapper = context.getBean("employeeMapper",EmployeeMapper.class);

    @Test
    public void entityWrapperUpdate(){
        //修改名字为Tom年龄为44岁
        Employee employee = new Employee();
        employee.setLastName("TomA");
        employee.setEmail("ffff5@qq.com");
        Integer update = employeeMapper.update(employee, new EntityWrapper<Employee>()
                .eq("last_name", "Tom")
                .eq("age", 44)
        );
        //Preparing: UPDATE tbl_employee SET last_name=?, email=? WHERE (last_name = ? AND gender = ?) 
        System.out.println(update);
    }
}

五、带条件的删除

    @Test
    public void entityWrapperDelete(){
        // Preparing: DELETE FROM tbl_employee WHERE (id = ?) 
        Integer id = employeeMapper.delete(new EntityWrapper<Employee>()
                .eq("id", 14));
    }

六、使用Condition的方式条件查询并分页

    @Test
    public void testCondition(){
        //查询性别女 并且名字带有老师或者邮箱中带有a
        // SELECT id AS id,last_name AS lastName,email,gender,age FROM tbl_employee WHERE (gender = ? AND last_name LIKE ? OR email LIKE ?)
        List<Employee> list = employeeMapper.selectPage(new Page<Employee>(1, 2), Condition.create()
                .eq("gender", "女")
                .like("last_name", "老师")
                .or()
                .like("email", "a")
        );
        System.out.println(list);
    }

条件构造器小结

MP:EntityWrapper、Condition 条件构造器

Mybatis:MBG逆向工程,xxxExample–>criteria帮我封装条件的:QBC(query By Criteria)
Hibernate、通用Mapper 用到了QBC

  • 7
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值