MybatisPlus相关个人笔记

本文详细记录了MybatisPlus与SpringBoot的整合过程,包括配置文件参考、分页器配置、乐观锁的实现、Sql注入器的编写、自动填充功能、逻辑删除功能以及通用枚举和代码生成器的使用。
摘要由CSDN通过智能技术生成

目录

Mybatis与MybatisPlus整合

相关配置

SpringBoot配置文件参考

SpringBoot配置类配置分页器

在Mybatis-config.xml文件中配置分页器

POJO类相关注释

配置相关插件

SpringBoot配置类配置

配置在mybatis-config

配置乐观锁插件

Sql注入器

编写MyBaseMapper继承BaseMap

编写FindAll类

编写MySqlInjector继承DefaultSqlInjector

注册到Spring容器

自动填充功能

添加@TableField注解

可选模式

编写MyMetaObjectHandle

逻辑删除

数据表添加delete字段并设置值

POJO实体添加注释

添加逻辑删除配置

通用枚举

修改表结构

定义枚举

配置

修改实体

代码生成器

创建工程

代码

MybatisX快速开发插件


Mybatis与MybatisPlus整合

Mapper继承BaseMapper,就拥有了BaseMapper中的所有方法

相关配置

SpringBoot配置文件参考

spring.application.name=itcast-mp-springboot
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/mp?useUnicode=true&characterEncoding=utf8&autoReconnect=true&allowMultiQueries=true&useSSL=false
spring.datasource.username=root
spring.datasource.password=123

# 指定全局配置文件
mybatis-plus.config-location=classpath:mybatis-config.xml
# 指定mapper.xml文件的路径
mybatis-plus.mapper-locations= classpath*:mybatis/*.xml
# 实体对象扫描包
mybatis-plus.type-aliases-package= cn.itcast.mp.pojo
# 关闭自动驼峰映射,该参数不能和mybatis-plus.config-location同时存在 可以配置到mybatis-config.xml里边
#mybatis-plus.configuration.map-underscore-to-camel-case=false
# 是否禁用缓存
mybatis-plus.configuration.cache-enabled=false
# 全局id策略
mybatis-plus.global-config.db-config.id-type=auto
# 全局的表明的前缀
mybatis-plus.global-config.db-config.table-prefix=tb_

SpringBoot配置类配置分页器

@Configuration
@MapperScan("cn.itcast.mp.mapper") //设置mapper接口的扫描包
public class MybatisPlusConfig {

    @Bean //配置分页插件
    public PaginationInterceptor paginationInterceptor(){
        return new PaginationInterceptor();
    }

}

在Mybatis-config.xml文件中配置分页器

<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
    
    <plugins>
        <plugin interceptor="com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor"></plugin>
    </plugins>
</configuration>

POJO类相关注释

@Data
@NoArgsConstructor
@AllArgsConstructor
@TableName("tb_user")
public class User {
    @TableId(type = IdType.AUTO)
    private Long id;
    private String userName;
    @TableField(select = false) //查询时不反回该字段的值
    private String password;
    private String name;
    private Integer age;
    @TableField(value = "email") //指定数据库字段名映射
    private String mail;
    @TableField(exist = false)
    private String address; //在数据库表中不存在
}

配置相关插件

SpringBoot配置类配置

package cn.itcast.mp;


import cn.itcast.mp.plugins.MyInterceptor;
import com.baomidou.mybatisplus.core.parser.ISqlParser;
import com.baomidou.mybatisplus.extension.parsers.BlockAttackSqlParser;
import com.baomidou.mybatisplus.extension.plugins.OptimisticLockerInterceptor;
import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
import com.baomidou.mybatisplus.extension.plugins.SqlExplainInterceptor;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import java.util.ArrayList;
import java.util.List;

@Configuration
@MapperScan("cn.itcast.mp.mapper") //设置mapper接口的扫描包
public class MybatisPlusConfig {

    @Bean //配置分页插件
    public PaginationInterceptor paginationInterceptor(){
        return new PaginationInterceptor();
    }

    @Bean //注入自定义拦截器(插件)
    public MyInterceptor myInterceptor(){
        return new MyInterceptor();
    }

    @Bean //sql执行分析插件
    public SqlExplainInterceptor sqlExplainInterceptor(){

        SqlExplainInterceptor sqlExplainInterceptor = new SqlExplainInterceptor();


        List<ISqlParser> list = new ArrayList<>();
        //全表更新、删除的阻断器
        list.add(new BlockAttackSqlParser());
        sqlExplainInterceptor.setSqlParserList(list);

        return sqlExplainInterceptor;
    }

    @Bean //乐观锁插件 需要为数据库添加Version字段 为User实体对象添加version字段,并且添加@Version注解
    public OptimisticLockerInterceptor optimisticLockerInterceptor(){
        return new OptimisticLockerInterceptor();
    }
    
    

}

配置在mybatis-config

<configuration>
    
    <plugins>
        <plugin interceptor="com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor"></plugin>
        <!--性能分析插件-->
        <plugin interceptor="com.baomidou.mybatisplus.extension.plugins.PerformanceInterceptor">
            <!--最大执行时间,单位毫秒 若超过则抛出异常-->
            <property name="maxTime" value="100"/>
            <!--是否对输出sql格式化 默认false-->
            <property name="format" value="true"/>
        </plugin>
    </plugins>
</configuration>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值