1.参考资料
官网:https://baomidou.com/
官方文档 :https://baomidou.com/pages/56bac0/
官方源码地址: https://gitee.com/baomidou/mybatis-plus
2.POM依赖
<!--mybatis-plus依赖-->
<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>org.apache.velocity</groupId>
<artifactId>velocity-engine-core</artifactId>
<version>2.3</version>
</dependency>
<!--mysql 连接驱动依赖 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.32</version>
</dependency>
<!--lombok-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<!--swagger3依赖-->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-boot-starter</artifactId>
<version>3.0.0</version>
</dependency>
3.MyBatis Plus代码生成器配置
//代码默认注释作者
static final String author = "feifei";//作者
static final String dataSourceUrl = "jdbc:mysql://110.110.110.1100:3306/base?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai";
static final String driverName = "com.mysql.cj.jdbc.Driver";
static final String dataSourceUserName = "root";
static final String dataSourcePassWord = "root";
static final String modelName = "AA";//模块名称
static final String packageName = "com.component";//包名
public static void main(String[] args) {
FastAutoGenerator.create(dataSourceUrl, dataSourceUserName, dataSourcePassWord)
.globalConfig(builder -> {
builder.author(author)
//启用swagger
.enableSwagger()
//结束时是否打开文件夹 默认false
.disableOpenDir()
//是否覆盖旧的文件 默认 true
.fileOverride()
//指定输出目录
.outputDir(System.getProperty("user.dir") + "/" + modelName + "/src/main/java");
}).packageConfig(builder -> {
builder.entity("entity")//实体类包名
.parent(packageName)//父包名。如果为空,将下面子包名必须写全部, 否则就只需写子包名
.controller("controller")//控制层包名
.mapper("dao")//mapper层包名
//.other("dto")//生成dto目录 可不用
.service("service")//service层包名
.serviceImpl("service.impl")//service实现类包名
//自定义mapper.xml文件输出目录
.pathInfo(Collections.singletonMap(OutputFile.mapperXml, System.getProperty("user.dir") + "/" + modelName + "/src/main/resources/mapper"));
}).strategyConfig(builder -> {
//设置要生成的表名
builder.addInclude("sys_org", "sys_org_center")
.addTablePrefix("sys_")//设置表前缀过滤
.entityBuilder()
.enableLombok()//开启Lombok模型
.enableTableFieldAnnotation()//开启生成实体时生成字段注解 @TableField("")
//.enableChainModel()//开启链式模型 @Accessors(chain = true)
.naming(NamingStrategy.underline_to_camel)//数据表映射实体命名策略:默认下划线转驼峰underline_to_camel
.columnNaming(NamingStrategy.underline_to_camel)//表字段映射实体属性命名规则:默认null,不指定按照naming执行
.idType(IdType.AUTO)//添加全局主键类型
.formatFileName("%s")//格式化实体名称,%s取消首字母I,
.mapperBuilder().enableMapperAnnotation()//开启mapper注解
.enableBaseResultMap()//启用xml文件中的BaseResultMap 生成
.enableBaseColumnList()//启用xml文件中的BaseColumnList
.formatMapperFileName("%sMapper")//格式化Dao类名称
.formatXmlFileName("%sMapper")//格式化xml文件名称
.serviceBuilder().formatServiceFileName("%sService")//格式化 service 接口文件名称
.formatServiceImplFileName("%sServiceImpl")//格式化 service 接口文件名称
.controllerBuilder().enableRestStyle();
})
.execute();
}