目录
1.前置条件
2.导坐标
3.配置数据源
4.mybatis-plus基础配置
5.配置mapper扫描路径
6.MyBatis Plus代码生成器整合
1.导坐标
2.编写代码生成逻辑
7.整合Druid连接池
1.前置条件
已经初始化好一个spring boot项目且版本为3X,项目可正常启动
初始化教程:
新版idea创建spring boot项目-CSDN博客https://blog.csdn.net/qq_62262918/article/details/135785412?spm=1001.2014.3001.5501
2.导坐标
pom.xml:
<dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.5.5</version><exclusions><exclusion><groupId>org.mybatis</groupId><artifactId>mybatis-spring</artifactId></exclusion></exclusions></dependency><dependency><groupId>org.mybatis</groupId><artifactId>mybatis-spring</artifactId><version>3.0.3</version></dependency>
为何要排除掉mybatis plus整合好的mybatis依赖单独引入一个?
Spring Boot 3.2.2整合MyBatis-Plus 3.5.5依赖不兼容问题-CSDN博客https://blog.csdn.net/qq_62262918/article/details/135723627?spm=1001.2014.3001.5501
3.配置数据源
application.yml:
spring:datasource:url: jdbc:mysql://localhost:3306/testusername: rootpassword: 123456
4.mybatis-plus基础配置
application.yml:
#mp配置
mybatis-plus:configuration:map-underscore-to-camel-case: true#打印sql日志log-impl: org.apache.ibatis.logging.stdout.StdOutImplglobal-config:db-config:#id自增类型配置id-type: ASSIGN_ID#逻辑删除字段配置logic-delete-field: deletedlogic-not-delete-value: 0logic-delete-value: 1#控制台mybatis-plus标记banner: true
5.配置mapper扫描路径
在启动类添加@MapperScan("com.mijiu.mapper")注解指定mapper文件夹
如果不加该注解则要在每个mapper接口添加@Mapper注解
此时可以成功启动项目
看到MyBatis Plus的banner说明到这里整合好了。
6.MyBatis Plus代码生成器整合
官方文档:
代码生成器(新) | MyBatis-Plus (baomidou.com)https://baomidou.com/pages/779a6e/#%E5%BF%AB%E9%80%9F%E5%85%A5%E9%97%A8
1.导坐标
第一个依赖是代码生成器
第二个是代码生成器所依赖代码生成模板velocity,当然不止这一个模板具体参阅官网
pom.xml:
<dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-generator</artifactId><version>3.5.5</version></dependency><dependency><groupId>org.apache.velocity</groupId><artifactId>velocity-engine-core</artifactId><version>2.3</version></dependency>
2.编写代码生成逻辑
这里我写好demo了,需要修改的地方已经标记//TODO注释了
如果你的目录结构同作者类似,cv下面的demo修改一下//TODO标注的配置运行即可
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.generator.FastAutoGenerator;import java.util.*;/*** @author mijiupro*/
public class CodeGenerator {public static void main(String[] args) {getCode();}public static void getCode() {//TODO 修改为自己的数据库信息String url = "jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai";String username = "root";String password = "123456";//TODO 修改为自己的表名List<String> tables = List.of("user");//需要生成对应代码的表名的集合FastAutoGenerator.create(url, username, password)//全局配置----------------------------------------------------------------------------------------.globalConfig(builder -> {builder.author("蒾酒")//TODO 修改为自己名称.outputDir(System.getProperty("user.dir") + "\\src\\main\\java")// 输出路径(写到java目录)// .enableSwagger() //开启swagger,会自动添加swagger相关注解.commentDate("yyyy-MM-dd");//日期格式})//包名配置--------------------------------------------------------------------------------------------.packageConfig(builder ->builder.parent("com.mijiu")//TODO 修改为自己项目的路径// .moduleName("practice")//模块名,设置该项会在输出路径上增加一层模块名目录.entity("entity").service("service").serviceImpl("service.impl").controller("controller").mapper("mapper").xml("mapper/xml"))//策略配置-----------------------------------------------------------------------------------------.strategyConfig(builder -> {builder.addInclude(tables)// 需要生成代码对应的表,若需要生成全部表则注释该行解放下一行// .addInclude("all")//生成全部表// .addTablePrefix("p_")//表前缀过滤,例如“p_”开头的表不会生成对应代码//实体策略配置.entityBuilder().enableFileOverride()// TODO 开启覆盖已生成的entity文件,关闭则注释本行.enableLombok()// 自动添加lombok注解@Getter @Setter.logicDeleteColumnName("deleted")// 指定逻辑删除字段名自动为其添加逻辑删除字段注解.enableTableFieldAnnotation()//启用表字段注解@TableField//Mapper策略配置.mapperBuilder().enableBaseResultMap() // 生成通用的resultMap.superClass(BaseMapper.class).formatMapperFileName("%sMapper")//mapper文件后缀,如UserMapper// .enableFileOverride()// TODO 开启覆盖已生成的mapper文件,关闭则注释本行.formatXmlFileName("%sMapper")//xml文件后缀,如UserMapper.xml//Service策略配置.serviceBuilder()// .enableFileOverride()//TODO 开启覆盖已生成的service文件,关闭则注释本行.formatServiceFileName("%sService").formatServiceImplFileName("%sServiceImpl")//Controller策略配置.controllerBuilder().enableHyphenStyle() // 映射路径使用连字符格式.formatFileName("%sController")// .enableFileOverride()// TODO 开启覆盖已生成的controller文件,关闭则注释本行.enableRestStyle();//启用rest风格自动添加@RestController}).execute();}}
运行即可。
7.整合Druid连接池
Spring Boot3整合Druid(监控功能)-CSDN博客https://blog.csdn.net/qq_62262918/article/details/135738692