创建工具类,用于生成一系列的包
1.新建一个SpringBoot项目,选择springweb依赖
2.导入MP依赖和自动生成代码依赖,可以去官网复制,数据库依赖
<!--mp依赖-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.5.1</version>
</dependency>
<!--mp代码生成依赖-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>3.5.1</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<!--freemarker引擎-->
<dependency>
<groupId>org.freemarker</groupId>
<artifactId>freemarker</artifactId>
</dependency>
3.创建我们的工具类代码
package cn.bs.reverseengineering;
import com.baomidou.mybatisplus.generator.FastAutoGenerator;
import com.baomidou.mybatisplus.generator.config.DataSourceConfig;
import com.baomidou.mybatisplus.generator.config.OutputFile;
import com.baomidou.mybatisplus.generator.config.converts.MySqlTypeConvert;
import com.baomidou.mybatisplus.generator.config.querys.MySqlQuery;
import com.baomidou.mybatisplus.generator.config.rules.DateType;
import com.baomidou.mybatisplus.generator.engine.AbstractTemplateEngine;
import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;
import com.baomidou.mybatisplus.generator.keywords.MySqlKeyWordsHandler;
import java.util.Collections;
/**
* 代码生成器 ,先修改下面的常量配置参数,然后执行 main方法
*/
public class CodeGenerator {
// 数据库连接配置 注意需要更改数据库
private static final String JDBC_URL = "jdbc:mysql:///demo?useUnicode=true&characterEncoding=utf-8&serverTimeZone=Asia/Shanghai";
private static final String JDBC_USER_NAME = "root";
private static final String JDBC_PASSOWRD = "root";
// 包名和模块名
private static final String PACKAGE_NAME = "cn.bs";
private static final String MODULE_NAME = "demo";
// 表名,多个表使用英文逗号分割
private static final String[] TBL_NAMES = {"t_user"};
// 表名的前缀,从表生成代码时会去掉前缀
private static final String TABLE_PREFIX = "t_";
// 生成代码入口main方法
public static void main(String[] args) {
// 1.数据库配置
DataSourceConfig.Builder dataSourceConfigBuilder = new DataSourceConfig.Builder(JDBC_URL, JDBC_USER_NAME,
JDBC_PASSOWRD).dbQuery(new MySqlQuery()).typeConvert(new MySqlTypeConvert())
.keyWordsHandler(new MySqlKeyWordsHandler());
// 1.1.快速生成器
FastAutoGenerator fastAutoGenerator = FastAutoGenerator.create(dataSourceConfigBuilder);
// 2.全局配置
// 覆盖已生成文件
// 不打开生成文件目录
// 指定输出目录,注意使用反斜杠\
// 设置注释的作者
// 设置注释的日期格式
// 使用java8新的时间类型
fastAutoGenerator.globalConfig(globalConfigBuilder -> globalConfigBuilder.fileOverride().disableOpenDir()
.outputDir("src\\main\\java").author("小桥").commentDate("yyyy-MM-dd").dateType(DateType.TIME_PACK));
// 3.包配置
// 设置父包名
// 设置父包模块名
// 设置MVC下各个模块的包名
// 设置XML资源文件的目录
fastAutoGenerator.packageConfig(packageConfigBuilder -> packageConfigBuilder.parent(PACKAGE_NAME)
.moduleName(MODULE_NAME).entity("pojo").mapper("mapper").service("service").serviceImpl("service.impl")
.controller("controller").other("other")
.pathInfo(Collections.singletonMap(OutputFile.mapperXml, "src\\main\\resources\\mapper")));
// 4.模板配置
// 使用Freemarker引擎模板,默认的是Velocity引擎模板
AbstractTemplateEngine templateEngine = new FreemarkerTemplateEngine();
fastAutoGenerator.templateEngine(templateEngine);
// 5.注入配置 TODO
// 6.策略配置
// 设置需要生成的表名
// 设置过滤表前缀
fastAutoGenerator.strategyConfig(strategyConfigBuilder -> strategyConfigBuilder.enableCapitalMode()
.enableSkipView().disableSqlFilter().addInclude(TBL_NAMES).addTablePrefix(TABLE_PREFIX));
// 6.1.Entity策略配置
// 生成实体时生成字段的注解,包括@TableId注解等
// 数据库表和字段映射到实体的命名策略,为下划线转驼峰
// 全局主键类型为None
// 实体名称格式化为XXXEntity
/* fastAutoGenerator.strategyConfig(strategyConfigBuilder -> strategyConfigBuilder.entityBuilder()
.enableTableFieldAnnotation().naming(NamingStrategy.underline_to_camel)
.columnNaming(NamingStrategy.underline_to_camel).idType(IdType.NONE).formatFileName("%sPojo"));*/
// 6.2.Controller策略配置
// 开启生成@RestController控制器
fastAutoGenerator
.strategyConfig(strategyConfigBuilder -> strategyConfigBuilder.controllerBuilder().enableRestStyle());
// 6.3.Service策略配置
// 格式化service接口和实现类的文件名称,去掉默认的ServiceName前面的I
fastAutoGenerator.strategyConfig(strategyConfigBuilder -> strategyConfigBuilder.serviceBuilder()
.formatServiceFileName("%sService").formatServiceImplFileName("%sServiceImpl"));
// 6.4.Mapper策略配置
// 格式化 mapper文件名,格式化xml实现类文件名称
fastAutoGenerator.strategyConfig(strategyConfigBuilder -> strategyConfigBuilder.mapperBuilder()
.formatMapperFileName("%sMapper").formatXmlFileName("%sMapper"));
// 7.生成代码
fastAutoGenerator.execute();
}
}
4.记得数据库的地址要改成自己的,然后就能看到你的生成一个包,里面我们的spring常用的几个包就全部搞定了,剪切复制到自己写的项目里面就可以了
就是现在这个样子了