1.使用自动生成的方法时需要将数据库准备好( 简单的演示)
2.创建项目工程(不做演示)
3.然后导入必要的包
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.5.2</version>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>3.5.2</version>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-extension</artifactId>
<version>3.5.2</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.freemarker</groupId>
<artifactId>freemarker</artifactId>
<version>2.3.28</version>
</dependency>
4.配置文件
application.yml
spring:
application:
name: mybatisplusdemo
datasource:
driver-class-name: com.mysql.jdbc.Driver
password: root
type: com.alibaba.druid.pool.DruidDataSource
url: jdbc:mysql://localhost:3306/User?useUnicode=true&characterEncoding=UTF-8
username: root
mybatis-plus:
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
global-config:
db-config:
logic-delete-value: 1
logic-not-delete-value: 0
table-prefix: t_
mapper-locations: classpath:mapper/*.xml
type-aliases-package: com.mybatisplusdemo.entity
CodeGenerator
public class CodeGenerator {
@Test
public void run() {
FastAutoGenerator.create("jdbc:mysql://localhost:3306/User?useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT%2B8",
"root",
"root")
//全局配置
.globalConfig(builder ->
{
builder.fileOverride()
.disableOpenDir()//禁止打开输出目录 默认为true
.outputDir("C:\\Users\\Administrator\\Desktop\\mybatis-plus-demo\\src\\main\\java")//指定输出目录
.author("风萤")//作者名
// .enableKotlin()//开启 kotlin 模式
.enableSwagger()//开启 swagger 模式
.dateType(DateType.TIME_PACK)//时间策略
.commentDate("yyyy-MM-dd");//注释日期
})
//包配置
.packageConfig(builder ->
{
builder.parent("com")//父包名
.moduleName("mybatisplusdemo")//父包模块名
.entity("entity")//Entity 包名
.service("service")//Service 包名
.serviceImpl("Impl")//Service Impl 包名
.mapper("mapper")//Mapper 包名
.xml("mapperXml")//Mapper XML 包名
.controller("controller");//Controller 包名
//.other("other")
// .pathInfo(Collections.singletonMap(OutputFile.xml, "D://"))//路径配置信息
})
//模板配置
.templateConfig(builder ->
{
builder.disable(TemplateType.ENTITY)//禁用模板
.entity("/templates/entity.java")//设置实体模板路径(JAVA)
.service("/templates/service.java")
.serviceImpl("/templates/serviceImpl.java")
.mapper("/templates/mapper.java")
.xml("/templates/mapper.xml")
.controller("/templates/controller.java");
})
//策略配置
.strategyConfig(builder ->
{
builder.enableCapitalMode()//开启大写命名
// .enableSkipView()
// .disableSqlFilter()
// .likeTable(new LikeTable("USER"))
// .addInclude("t_simple")
.addTablePrefix("t_")//去掉表前缀
// .addFieldSuffix("_flag")//去掉表后缀
//Entity配置策略
.entityBuilder()//名称转换实现
// .superClass(com.baomidou.global.BaseEntity)设置父类
// .disableSerialVersionUID()//禁用生成 serialVersionUID
.enableChainModel()//开启链式模型 默认为false
.enableLombok()//开启 lombok 模型 默认为false
.enableRemoveIsPrefix()//开启 Boolean 类型字段移除 is 前缀 默认为false
.enableTableFieldAnnotation()//开启生成实体时生成字段注解 默认为false
.enableActiveRecord()//开启 ActiveRecord 模型 默认为false
.versionColumnName("version")//乐观锁数据库字段
.versionPropertyName("version")//乐观锁实体名
.logicDeleteColumnName("deleted")//删除数据库字段
.logicDeletePropertyName("deleteFlag")//删除实体名
// .naming(NamingStrategy.underline_to_camel)//数据库表映射到实体的命名策略 这里是下划线转驼峰
.columnNaming(NamingStrategy.underline_to_camel)//数据库字段表映射到实体的命名策略
.addSuperEntityColumns("created_by", "created_time", "updated_by", "updated_time")//添加父类公共字段 数据库写了就可以不加
.addIgnoreColumns()//忽略字段
.addTableFills(new Column("create_time", FieldFill.INSERT))//表字段填充
.addTableFills(new Property("updateTime", FieldFill.INSERT_UPDATE))//表字段填充
.idType(IdType.AUTO)//全局主键类型
.formatFileName("%sEntity")//格式化文件名称
//Controller策略配置
.controllerBuilder()
// .superClass(BaseController.class)//配置父类
.enableHyphenStyle()//开启驼峰转连字符 默认为false
.enableRestStyle()//开启生成@RestController 控制器 默认为false
.formatFileName("%sController")//格式化文件名称
//Service配置策略
.serviceBuilder()
.superServiceClass(IService.class)//设置 service 接口父类
.superServiceImplClass(ServiceImpl.class)//设置 service 实现类父类
.formatServiceFileName("%sService")//格式化 service 接口文件名称
.formatServiceImplFileName("%sServiceImp")//格式化 service 实现类文件名称
//Mapper策略配置
.mapperBuilder()
.superClass(BaseMapper.class)//设置父类
.enableMapperAnnotation()//开启@Mapper注解 默认false
.enableBaseResultMap()//启用 BaseResultMap 生成 默认false
.enableBaseColumnList()//启用 BaseColumnList 默认false
// .cache(MyMapperCache.class)//设置缓存实现类
.formatMapperFileName("%sDao")//格式化 mapper 文件名称
.formatXmlFileName("%sXml");//格式化 xml 实现类文件名称
})
.templateEngine(new FreemarkerTemplateEngine())
.execute();
}
}
5.运行@Test
运行成功