# mybatis-plus **Repository Path**: carmeloLee/mybatis-plus ## Basic Information - **Project Name**: mybatis-plus - **Description**: "Mybatis Plus"个人学习项目 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2021-09-14 - **Last Updated**: 2022-08-08 ## Categories & Tags **Categories**: Uncategorized **Tags**: MyBatis, mybatis-plus, Java ## README # mybatis-plus #### 介绍 Mybatis Plus Personal Project #### MySQL可选用Docker 5.7的版本。指定容器数据卷即可 ``` docker run --name mybatis-plus -p 3306:3306 -v /Users/melo/mydata/mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7 ``` #### 软件架构 mybatis-plus-api: 实体类等基础信息 mybatis-plus-api-autoconfigure: Interceptor插件、Handler处理类等高阶功能自动注入模块 包含分页Plugin、乐观锁Plugin、防误删Plugin、字段自动填值Handler mybatis-plus-basic-sample: Mybatis Plus基础的CRUD操作 mybatis-plus-senior-sample: Mybatis Plus高阶操作,包含Service、乐观锁、逻辑删除、属性自动填值、AR模式等 mybatis-plus-generator: Mybatis Plus代码生成器 #### 自定义SQL实现步骤 1、resources下新建SQL的xml文件; 2、application.yml中配置mybatis-plus.mapper-locations扫描xml包路径; 3、BaseMapper中新建自定义接口方法; #### Mybatis Plus分页实现步骤 1、Configuration需要实现MybatisPlusInterceptor的Bean 可参考官方网文档:https://mp.baomidou.com/guide/page.html #### Mybatis Plus乐观锁实现步骤 1、Entity实体类中要有个字段添加Version注解; 2、RDS对应的表中要有个version对应的字段; 3、MybatisPlusInterceptor中要添加OptimisticLockerInnerInterceptor拦截器; 4、实现类/测试类中的实体类赋值时要有version属性的赋值; #### Mybatis Plus自定义SQL方法实现步骤 1、继承AbstractMethod,实现injectMappedStatement方法; 2、继承DefaultSqlInjector,或者继承AbstractSqlInjector,或者实现ISqlInjector接口,重写getMethodList方法; 3、Mapper中新增对应的自定义方法; 4、Mybatis Plus已经实现的3种自定义SQL注入器 一、com.baomidou.mybatisplus.extension.injector.methods.InsertBatchSomeColumn: 批量新增数据,自选字段insert 二、com.baomidou.mybatisplus.extension.injector.methods.LogicDeleteByIdWithFill: 根据id逻辑删除数据,并带字段填充功能, 对应要调整的字段需要添加@TableField(fill = FieldFill.UPDATE)注解 三、com.baomidou.mybatisplus.extension.injector.methods.AlwaysUpdateSomeColumnById: 根据ID更新固定的那几个字段(但是不包含逻辑删除) #### Mybatis Plus IDEA插件 1、MybatisX: Mybatis的快速开发插件 2、MybatisPlus: Mybatis Plus的快速开发插件