前言mybatis-plus官方地址【spring boot项目使用mybatis-plus代码生成实例】https://baomidou.com
mybatis-plus是mybatis的增强,不对mybatis做任何改变,涵盖了代码生成 , 自定义ID生成器,快速实现CRUD,自动分页,逻辑删除等功能,更多功能请查阅官方文档安装依赖mybatis-plus-generator
<!-- mybatis plus 代码生成器 --><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.4.3.4</version></dependency><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-generator</artifactId><version>3.5.1</version></dependency>
application.yml添加配置针对spring boot或者mavan项目 , 我们需要在项目配置文件进行mybatis-plus添加配置项mybatis-plus:mapper-locations: classpath*:mapper/**/*Mapper.xmltype-aliases-package: com.lewyon.mybatislewyon.entity
代码生成实例代码生成依赖在代码生成之前,我们还需要添加mysql等相关包 , 进行导入,当前实例使用freemarker模板,因此需要添加相关依赖<!-- mysql --><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.26</version></dependency><!-- freemarker --><dependency><groupId>org.freemarker</groupId><artifactId>freemarker</artifactId><version>2.3.31</version></dependency>
数据源配置实例化DataSourceConfig方法对数据源进行配置,传入数据库地址和账号密码private static final DataSourceConfig.Builder DATA_SOURCE_CONFIG = new DataSourceConfig.Builder("jdbc:mysql://localhost:3306/user?useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC", "root", "lewyon123").dbQuery(new MySqlQuery()) //数据库查询.schema("mybatis-plus") //数据库schema(部分数据库适用).typeConvert(new MySqlTypeConvert()) //数据库类型转换器.keyWordsHandler(new MySqlKeyWordsHandler()); //数据库关键字处理器
globalConfig处理通用配置.globalConfig(builder -> {builder.author("lewyon") // 设置作者.enableSwagger() // 开启 swagger 模式.fileOverride() // 覆盖已生成文件.disableOpenDir() //禁止打开输出目录.outputDir(projectPath + "/src/main/java"); // 指定输出目录})
packageConfig包名设置packageConfig配置项包括父包名,entity,service, serviceImpl, mapper层 , xml配置,控制器controller等 。
.packageConfig(builder -> {builder.parent("com.lewyon.mybatislewyon") // 设置父包名.moduleName("user") // 设置父包模块名.entity("entity").service("service").serviceImpl("service.impl").mapper("mapper").xml("mapper.xml").controller("controller");})
strategyConfig配置- strategyConfig配置设置包括表名称以及表名处理
- 格式化Service以及ServiceImpl,添加%s前缀表示去除 Service 前缀的I
.strategyConfig(builder -> {builder.addInclude("user") // 设置需要生成的表名.addTablePrefix("t_", "c_").controllerBuilder().enableHyphenStyle().enableRestStyle().serviceBuilder().formatServiceFileName("%sService").formatServiceImplFileName("%sServiceImp").build();})
小结以上就是关于mybatis-plus生成代码包的基础实例,完整代码如下:package com.lewyon.mybatislewyon;import com.baomidou.mybatisplus.generator.FastAutoGenerator;import com.baomidou.mybatisplus.generator.config.DataSourceConfig;import com.baomidou.mybatisplus.generator.config.converts.MySqlTypeConvert;import com.baomidou.mybatisplus.generator.config.querys.MySqlQuery;import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;import com.baomidou.mybatisplus.generator.engine.VelocityTemplateEngine;import com.baomidou.mybatisplus.generator.keywords.MySqlKeyWordsHandler;public class GeneratorCode {/*** 数据源配置*/private static final DataSourceConfig.Builder DATA_SOURCE_CONFIG = new DataSourceConfig.Builder("jdbc:mysql://localhost:3306/user?useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC", "root", "lewyon123").dbQuery(new MySqlQuery()) //数据库查询.schema("mybatis-plus") //数据库schema(部分数据库适用).typeConvert(new MySqlTypeConvert()) //数据库类型转换器.keyWordsHandler(new MySqlKeyWordsHandler()); //数据库关键字处理器public static void main(String[] args) {String projectPath = System.getProperty("user.dir");FastAutoGenerator.create(DATA_SOURCE_CONFIG).globalConfig(builder -> {builder.author("lewyon") // 设置作者.enableSwagger() // 开启 swagger 模式.fileOverride() // 覆盖已生成文件.disableOpenDir() //禁止打开输出目录.outputDir(projectPath + "/src/main/java"); // 指定输出目录}).packageConfig(builder -> {builder.parent("com.lewyon.mybatislewyon") // 设置父包名.moduleName("user") // 设置父包模块名.entity("entity").service("service").serviceImpl("service.impl").mapper("mapper").xml("mapper.xml").controller("controller");}).strategyConfig(builder -> {builder.addInclude("user") // 设置需要生成的表名.addTablePrefix("t_", "c_").controllerBuilder().enableHyphenStyle().enableRestStyle().serviceBuilder().formatServiceFileName("%sService").formatServiceImplFileName("%sServiceImp").build();}).templateEngine(new FreemarkerTemplateEngine()) // 使用Freemarker引擎模板,默认的是Velocity引擎模板.execute();}}
推荐阅读
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 使用 Spring Security 手动验证用户
- SpringBoot实战派读书笔记---响应式编程
- Springboot集成阿里云短信
- 一个C#开发者学习SpringCloud搭建微服务的心路历程
- spring boot集成redis基础入门
- 从SpringBoot启动,阅读源码设计
- Springboot 之 Filter 实现 Gzip 压缩超大 json 对象
- .NET 开源项目推荐之 直播控制台解决方案 Macro Deck
- 18 基于.NetCore开发博客项目 StarBlog - 实现本地Typora文章打包上传
- Vue3 Vite3 多环境配置 - 基于 vite 创建 vue3 全家桶项目(续篇)