MybatisPlus笔记

本文详细介绍了MybatisPlus的集成、通用CRUD操作、条件构造器、ActiveRecord模式、代码生成器、插件拓展、自定义全局操作、公共字段自动填充、Oracle主键Sequence以及IDEA插件EasyCode的使用,旨在帮助开发者高效地使用MybatisPlus。
摘要由CSDN通过智能技术生成

MybatisPlus笔记

一、简介

1.MyBatisPlus介绍

MyBatis-Plus( 简称 MP),是一个 MyBatis 的增强工具包,只做增强不做改变. 为简化开 发工作、提高生产率而生,我们的愿景是成为 Mybatis 最好的搭档,就像 魂斗罗 中的 1P、2P,基友搭配,效率翻倍。

2.代码及文档发布地址

官方地址: 代码发布地址: Github: Gitee: 文档发布地址: 代码地址: 学习地址:

二、集成MP

1.创建数据库表

-- 创建库 
CREATE DATABASE mp; 
-- 使用库 
USE mp; 
-- 创建表 
CREATE TABLE tbl_employee( 
id INT(11) PRIMARY KEY AUTO_INCREMENT, 
last_name VARCHAR(50), 
email VARCHAR(50), 
gender CHAR(1),
 age int 
 ); 
INSERT INTO tbl_employee(last_name,email,gender,age) VALUES('Tom','tom@qq.com',1,22); 
INSERT INTO tbl_employee(last_name,email,gender,age) VALUES('Jerry','jerry@qq.com',0,25); 
INSERT INTO tbl_employee(last_name,email,gender,age) VALUES('Black','black@qq.com',1,30); 
INSERT INTO tbl_employee(last_name,email,gender,age) VALUES('White','white@qq.com',0,35);

2.创建JavaBean实体类

public class Employee {
   <!-- -->
    private Integer id;
    private String lastName;
    private String email;
    private Integer gender;
    private Integer age;
    //省略get和set以及ToString方法。
}

3.添加依赖

	<!--单元测试依赖-->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.11</version>
            <scope>test</scope>
        </dependency>
        <!--mp依赖
            MybatisPlus 会自动维护Mybatis以及Mybatis-spring相关的依赖-->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus</artifactId>
            <version>3.1.2</version>
        </dependency>
        <!--log4j-->
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.17</version>
        </dependency>
        <!--c3p0-->
        <dependency>
            <groupId>com.mchange</groupId>
            <artifactId>c3p0</artifactId>
            <version>0.9.5.2</version>
        </dependency>
        <!--mysql-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.38</version>
        </dependency>
        <!--spring-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>4.3.13.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-orm</artifactId>
            <version>4.3.24.RELEASE</version>
        </dependency>

4.引入数据源配置部分省略

三、通用CRUD

1)基于 Mybatis 需要编写 EmployeeMapper 接口,并手动编写 CRUD 方法 提供 EmployeeMapper.xml 映射文件,并手动编写每个方法对应的 SQL 语句. 2)基于 MybatisPlus 只需要创建 EmployeeMapper 接口, 并继承 BaseMapper 接口.这就是使用 M (泛型指定的就是当前Mapper接口所操作的实体类)需要完成的所有操作,甚至不需要创建 SQL 映射文件。

1.插入操作

①.生成ID策略 在这里插入图片描述 ②.开启驼峰命名转换以及对应数据库表

@TableName(value = "tbl_employee")//对应数据库名
public class Employee {
   <!-- -->
    /**
     * TableId:
     *  value:指定表中的主键列的列明,如果实体属性名与类名一直,可以省略不指定,
     *  type:指定主键策略
     */
    @TableId(value = "id",type = IdType.AUTO)
    private Integer id;
    private String lastName;
    private String email;
    private Integer gender;
    private Integer age;
    @TableField(exist = false)//忽略数据库没有的值salary
    private Integer salary;
    //省略get和set方法
}

③.获取插入的ID值mybatis的Mapper映射文件中

<insert id="insert" useGeneratedKeys="true" keyProperty="id"></insert>

MybatisPlus中,直接在Java后台获取到不需要写Mapper

Integer key=employee.getId();

④.插入对象出现空值

@Test
public void testCommonInsert() {
   <!-- -->
        //初始化Employee对象
        Employee employee = new Employee();
        employee.setLastName("MP");
        employee.setEmail("kevin@qq.com");
        Integer result = employeeMapper.insert(employee);
        System.out.println("Result:" + result);
}

此时插入结果为:MP,kevin@qq.com,null,null。 结论:insert方法在插入时,会根据实体类的每个属性进行非空判断,只有非空的属性对应的字段才会出现到SQL语句中

2.更新操作

通过ID进行更新操作,传入一个对相同会进行自动判断

@Test
    public void testCommonUpdate(){
   <!-- -->
        Employee employee = new Employee();
        employee.setId(6);
        employee.setLastName("MybatisPlus");
        employee.setEmail("MybatisPlus@qq.com");
        employee.setGender(0);
        //可以写一个构造方法,new Employee(6,"Name","email",0,20)
        //如果出现非空会MybatisPlus会进行自动判断,不会出现在SQL语句中
        employee.setAge(20);
        Integer result = employeeMapper.updateById(employee);
        System.out.println("result:"+result);
    }

3.查询操作

①.通过ID查询

@Test
    public void testCommonSelect(){
   <!-- -->
        Employee employee = employeeMapper.selectById(3);
        System.out.println("Employee="+employee);
    }

②.通过实体查询单条数据

        Employee employee = new Employee();
        employee.setId(4);
        employee.setLastName("DSM")
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MyBatis Plus 是一个基于 MyBatis 的增强工具,它简化了 MyBatis 的开发流程,提供了更多便捷的操作方式。下面是一些关于 MyBatis Plus 的笔记: 1. 引入依赖:在项目的 pom.xml 文件中,添加 MyBatis Plus 的依赖。可以参考官方文档获取最新的版本信息。 2. 配置数据源:在项目的配置文件中,配置数据库连接信息。可以使用 Spring Boot 的配置文件,也可以使用 MyBatis Plus 提供的配置类来配置数据源。 3. 定义实体类:创建实体类,并使用注解进行字段和表的映射关系的标记。可以使用 @TableName 注解标记表名,@TableId 注解标记主键,@TableField 注解标记字段等。 4. 编写 Mapper 接口:创建 Mapper 接口,并继承 BaseMapper 接口。无需编写 XML 文件,MyBatis Plus 会根据接口方法的命名规则自动生成 SQL。 5. 使用通用 CRUD 方法:MyBatis Plus 提供了一些通用的 CURD 方法,如 insert、update、delete、select 等,并支持分页查询和条件查询。 6. 高级查询功能:MyBatis Plus 还提供了一些高级查询功能,如动态 SQL、条件构造器、Wrapper 查询等。可以根据具体需求选择使用。 7. 分页查询:MyBatis Plus 支持分页查询,可以通过 PageHelper 来实现分页功能。可以在查询方法中传入 Page 对象,并在查询结果中获取分页相关信息。 8. 自动填充功能:MyBatis Plus 支持自动填充功能,可以在实体类中定义字段,使用注解 @TableField(fill = FieldFill.INSERT) 标记需要自动填充的字段。 9. 乐观锁功能:MyBatis Plus 支持乐观锁功能,可以在实体类中定义字段,使用注解 @Version 标记乐观锁字段。在更新操作时,会自动判断版本号是否一致。 以上是一些关于 MyBatis Plus 的笔记,希望对你有帮助!如果有更多问题,可以继续提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值