MyBatisPlus总结

1.概述

MyBatisPlus是一个基于Mybatis框架的增强工具,它在Mybatis的基础上只做增强而不做改变,旨在简化开发、提高效率。Mybatis-Plus提供了一系列的功能和特性,使得开发人员能够更加高效地使用Mybatis进行数据库操作。

官网:mybatis.plus/

2.快速开始

  1. 导入MyBatisPlus的起步依赖,替换掉MyBatis的起步依赖。
xml 复制代码
<!--Mybatis-Plus-->
<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-spring-boot3-starter</artifactId>
    <version>3.5.7</version>
</dependency>
  1. 在引导类上添加注解,配置自动扫描Mapper。
java 复制代码
@MapperScan("mapper包的路径")
  1. 定义mapper

Mybatis-Plus提供了一个基础的BaseMapper接口,其中已经实现了单表的CRUD:

只需要让自定义的mapper继承BaseMapper,并且指定对应的实体类名

3.常见注解

Mybatis-Plus就是根据pojo实体的信息通过反射来推断出表的信息,从而生成SQL的。默认情况下:

  • Mybatis-Plus会把pojo实体的类名驼峰转下划线作为表名
  • Mybatis-Plus会把名为id的字段作为主键
  • Mybatis-Plus会把pojo实体的所有变量名驼峰转下划线作为表的字段名,并根据变量类型推断字段类型

TableName

  • 描述:表名注解,标识实体类对应的表。

  • 使用位置:实体类。

java 复制代码
@TableName("数据库表名")

TableId

  • 描述:主键注解,标识实体类中的主键字段。

  • 使用位置:实体类的主键字段。

java 复制代码
@TableId(value = "id", type = IdType.AUTO)
private Long id;

IdType支持的类型有:

TableField

  • 普通字段注解

一般情况下不需要给字段添加@TableField注解,一些特殊情况除外:

  • 成员变量名与数据库字段名不一致
  • 成员变量是以isXXX命名,按照JavaBean的规范,Mybatis-Plus识别字段时会把is去除,这就导致与数据库不符。
  • 成员变量名与数据库一致,但是与数据库的关键字冲突。使用@TableField注解给字段名添加转义字符:````
  • 成员变量不是数据库中的字段,则需要使用exist表明为false
java 复制代码
//@TableField("数据库字段名")
@TableField("username")
    private String name;

    @TableField("is_married")
    private Boolean isMarried;

    @TableField("`order`")
    private Integer order;

    @TableField(exist = false)
    private String address;

4.常见配置

#配置MyBatis的日志输出

mybatis-plus: configuration: log-impl: org.apache.ibatis.logging.stdout.StdOutImpl #表示为指定包下的类取别名,默认就是类名,且别名不区分大小写 type-aliases-package: com.itheima..pojo mapper-locations: classpath*:/mapper//*Mapper.xml #数据库全局配置 #global-config: #db-config: #ID生成策略 #id-type: auto #表前缀 #table-prefix: tb_

5.核心功能

条件构造器

QueryWrapper:

例如:查询姓名中包含"李"且薪资大于等于5000的员工的 id.,name,phone,salary字段。

UpdateWrapper:

例如:把 李忠 的薪资 +1000。

LambdaQueryWrapper

上述两个示例:

IService接口

Mybatis-Plus不仅提供了BaseMapper,还提供了通用的Service接口及默认实现,封装了一些常用的service模板方法。 通用接口为IService,默认实现为ServiceImpl,其中封装的方法可以分为以下几类:

  • save:新增

  • remove:删除

  • update:更新

  • get:查询单个结果

  • list:查询集合结果

  • count:计数

  • page:分页查询

    需要增加一个配置类config.MyBatisConfig

    java 复制代码
    package com.itheima.config;
    
    import com.baomidou.mybatisplus.annotation.DbType;
    import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
    import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    
    @Configuration
    public class MybatisConfig {
        @Bean
        public MybatisPlusInterceptor mybatisPlusInterceptor() {
            // 初始化Mybatis-Plus核心插件
            MybatisPlusInterceptor mybatisPlusInterceptor = new MybatisPlusInterceptor();
            // 添加分页插件
            PaginationInnerInterceptor paginationInnerInterceptor = new PaginationInnerInterceptor(DbType.MYSQL);
            paginationInnerInterceptor.setMaxLimit(1000L);
            mybatisPlusInterceptor.addInnerInterceptor(paginationInnerInterceptor);
    
            return mybatisPlusInterceptor;
        }
    }
java 复制代码
//示例:
public interface DeptService extends IService<Dept> {
    
}
java 复制代码
@Service
public class DeptServiceImpl extends ServiceImpl<DeptMapper, Dept> implements DeptService {

}
相关推荐
ONEPEICE-ing2 小时前
快速入门Springboot+vue——MybatisPlus多表查询及分页查询
前端·vue.js·spring boot·mybatis
wolf犭良4 小时前
14、《SpringBoot+MyBatis集成(2)——进阶配置XML与注解的灵活运用》
xml·spring boot·mybatis
seabirdssss4 小时前
重构测试项目为spring+springMVC+Mybatis框架
java·spring·重构·mvc·mybatis
火烧屁屁啦6 小时前
【JavaEE进阶】MyBatis之动态SQL
java·java-ee·mybatis
嘵奇8 小时前
MyBatis框架七:缓存
缓存·mybatis
火烧屁屁啦9 小时前
【JavaEE进阶】MyBatis通过注解实现增删改查
java·java-ee·mybatis
ONEPEICE-ing9 小时前
快速入门Springboot+vue——MybatisPlus快速上手
vue.js·spring boot·后端·mybatis·mybatis-plus
风月歌12 小时前
java毕业设计之医院门诊挂号系统(源码+文档)
java·mysql·毕业设计·mybatis·ssm·源码
嘵奇21 小时前
MyBatis 中 SqlMapConfig 配置文件详解
mybatis