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 {

}
相关推荐
追风赶月、2 小时前
【Redis】Set集合、Zset有序集合以及其它数据类型
java·redis·mybatis
wending-Y3 小时前
es 里的Filesystem Cache 理解
大数据·elasticsearch·mybatis
虚!!!看代码7 小时前
【Mybatis-plus常用语法】
windows·tomcat·mybatis
zfj32117 小时前
Lucene多种数据类型使用说明
java·mybatis·lucene
qqxhb17 小时前
零基础学Java——第九章:数据库编程(三)
java·数据库·spring·mybatis
问道飞鱼3 天前
【Springboot进阶】springboot+mybatis+jsqlparser实现数据权限控制
mybatis·springboot·jsqlparser·数据权限
小杜-coding3 天前
黑马点评day02(缓存)
java·spring boot·redis·后端·spring·maven·mybatis
努力的搬砖人.3 天前
Spring Boot 集成 Solr 的详细步骤及示例
spring boot·mybatis·solr
王天华帅哥3 天前
解决因字段过长使MYSQL数据解析超时导致线上CPU告警问题
spring·mybatis
xuanjiong3 天前
Javaweb项目--Mybatis,导入com.mysql.cj.jdbc.Driver时报错,Cannot resolve class ‘Driver‘
数据库·mysql·mybatis