MyBatis-Plus的应用

一.简介

        MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。

二、特性

       无侵入:只做增强不做改变
       损耗小:启动即会自动注入基本 CURD,性能基本无损耗,直接面向对象操作
       强大的 CRUD 操作:内置通用 Mapper、通用 Service,仅仅通过少量配置即可实现单表大部分 CRUD 操作,更有强大的条件构造器,满足各类使用需求


三.项目配置

1.在新建项目的pom.xml文件中添加以下依赖

<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-boot-starter</artifactId>
    <version>3.4.0</version>
</dependency>
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>5.1.49</version>
</dependency>

2.然后安装lombok插件,lombok的作用是提高开发效率,通过注解形式使javabean生成get、set、有参数、无参数、toString等方法,无需手动实现。

四.创建接口

创建mapper接口,并继承BaseMapper接口。例如,

@Repository

public interface EmployeeMapper extends BaseMapper<Employee> { }

五.增删改查

1.insert

需求描述:插入一个员工,员工姓名为“张三”、邮箱为"zhangsan@qq.com"、男性、25岁

@Test
void testInsert() {
    int result = employeeMapper.insert(new Employee(null, "zhangsan", "zhangsan@qq.com", 0, 25));
    System.out.println("result:" + result);
}


2.updateById

需求描述:将id为1的员工的姓名更改为"Jennie"

@Test
void testUpdateById() {
    // 先查询
    Employee employee = employeeMapper.selectById(1);
    employee.setLastName("Jennie");
    // 再修改
    int result = employeeMapper.updateById(employee);
    System.out.println(result);
}

3.selectById

需求描述:查询id为1的员工信息

@Test

void testSelectById() {

Employee employee = employeeMapper.selectById(1);

System.out.println(employee); }

4.selectByMap

需求描述:查询性别为男性(0)且年龄在25岁的员工信息

@Test
void testSelectByMap() {
    Map<String, Object> map = new HashMap<>();
    map.put("gender",0);
    map.put("age",25);
    List<Employee> employees = employeeMapper.selectByMap(map);
    employees.forEach(System.out::println);
}
5.deleteById

需求信息:删除id为1的员工信息

@Test void testDeleteById() {

int result = employeeMapper.deleteById(1);

System.out.println(result); }

六.条件构造器

        MyBatis-Plus 通过 EntityWrapper(简称 EW,MP 封装的一个查询条件构造器)或者 Condition(与 EW 类似) 来让用户自由的构建查询条件,简单便捷,没有额外的负担, 能够有效提高开发效率,它主要用于处理 sql 拼接,排序,实体参数查询等。

带条件查询:

需求描述:查询所有姓名的包含B、且性别为女(1)、且年龄大于24岁的员工信息

@Test
void testSelectList1() {
    QueryWrapper<Employee> queryWrapper = new QueryWrapper<>();
    queryWrapper
            .like("last_name","B")
            .eq("gender",1)
            .gt("age",24);
    List<Employee> employees = employeeMapper.selectList(queryWrapper);
    employees.forEach(System.out::println);
}

常用的一些函数:

eq     等于=

ne     不等于<>

gt      大于>

ge     大于等于>=

lt       小于<

le      小于等于<=

like    Like"%值%"


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值