mybatisplus3.5.1自动生成代码
1、修改pom.xml文件
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.5.1</version>
</dependency>
<!--mybatis-plus扩展包-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-extension</artifactId>
<version>3.5.1</version>
</dependency>
<!--mybatis-plus代码生成-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>3.5.1</version>
</dependency>
<dependency>
<groupId>org.freemarker</groupId>
<artifactId>freemarker</artifactId>
<version>2.3.31</version>
<scope>compile</scope>
</dependency>
2、代码生成类
package cn.worken.erp.itp.util;
import cn.worken.commons.web.BaseUserInfoController;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.generator.FastAutoGenerator;
import com.baomidou.mybatisplus.generator.config.OutputFile;
import com.baomidou.mybatisplus.generator.config.rules.DateType;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;
import com.google.common.collect.Lists;
import java.io.IOException;
import java.util.Collections;
import java.util.List;
/**
* @description:代码生成Mybatispus3.5.1
* @author:zhoutiegang
* @time:2022/10/27 11:25
*/
public class MybatisGenerator35 {
public static void main(String[] args) throws IOException {
// 需要生成的表名,如果不指定表名,表示全部都生成
List<String> tabNameList = Lists.newArrayList("table_ztg");
// 作者
String author = "zhoutiegang";
/***********************************以下是公共部分*****************************************************/
FastAutoGenerator
// 数据库连接配置
.create("jdbc:mysql://127.0.0.1:3306/test" +
"?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf-8",
"root", // 用户名
"root") // 密码
// 全局配置
.globalConfig(builder -> {
builder
.outputDir(System.getProperty("user.dir") + "//src//main//java//") // 生成项目目录
// .outputDir("E://code//wx") // 自定义生成目录
// .enableSwagger() // 自动swagger注解
.disableOpenDir() // 生成文件后不打开目录
.author(author) // 作者
.commentDate("yyyy-MM-dd HH:mm:ss") // 注释日期
.dateType(DateType.ONLY_DATE) // 时间策略,推荐用Date
.fileOverride() // 文件覆盖
;
})
// 包路径
.packageConfig(builder -> {
builder
.parent("com.ztg") // 父包名
// .moduleName("bus") // 模块名
.controller("controller")// controller路径
.entity("entity")// entity路径
.service("service")// service路径
.serviceImpl("service.impl") // impl路径
.mapper("mapper") // mapper路径
// .xml("resources.mapper") // xml文件放到src/main/java 目录下
// 将xml文件放到resource目录下
.pathInfo(Collections.singletonMap(OutputFile.mapperXml,
System.getProperty("user.dir") + "//src//main//resources//mapper")) // xml位置(还可自定义配置entity,service等位置)
;
})
// 策略配置
.strategyConfig(builder -> {
builder
// .enableCapitalMode()// 全局大写命名
// .addExclude("databasechangelog", "databasechangeloglock")// 排除生成的表
.addInclude(tabNameList) // 生成表
// .addTablePrefix("itp_") // 过滤表前缀
// .addFieldPrefix("tb_") // 字段前缀
.enableSkipView() //跳过视图
.controllerBuilder()
.enableRestStyle() //@RestController 注解
//.enableHyphenStyle() //url中驼峰转连字符
//.superClass(BaseUserInfoController.class)
.formatFileName("%sController")
.entityBuilder()
.idType(IdType.INPUT) // 指定IdType
.enableLombok()// lombok 模型
//.enableChainModel() // 链式操作
//.enableSerialVersionUID()
//.enableRemoveIsPrefix() 去掉字段前边的is
//.superClass(BaseEntity.class)
// .enableTableFieldAnnotation() // 开启字段注解
//.addSuperEntityColumns("id", "createDate", "createId", "updateDate", "updateId") // 自定义实体,公共字段
.naming(NamingStrategy.underline_to_camel)
.formatFileName("%sEntity")
.serviceBuilder()
.formatServiceFileName("%sService")
.formatServiceImplFileName("%sServiceImpl")
.mapperBuilder()
.formatMapperFileName("%sMapper")
.formatXmlFileName("%sMapper")
// .enableBaseColumnList() // 是否自动生成列
.enableBaseResultMap()
;
})
// 模板设置
.templateConfig(builder -> {
// builder
// .controller("") // 不生成文件
// .serviceImpl("") // 不生成文件
// .service("") // 不生成文件
// .entity("") // 不生成文件
// .mapper("") // 不生成文件
// .mapperXml("") // 不生成文件
// 以下使用模板
// .entity("templates\\entity\\entity.java.vm")
// .controller("templates\\controller\\controller.java.vm")
// .service(
// "templates\\service\\service.java.vm",
// "templates\\service\\impl\\serviceImpl.java.vm"
// )
// .mapper("templates\\persistent\\mapper.java.vm")
// .mapperXml("templates\\persistent\\xml\\mapper.xml.vm")
})
.templateEngine(new FreemarkerTemplateEngine())
.execute();
}
}
博客介绍了MyBatis-Plus 3.5.1自动生成代码的方法,主要包含两个步骤,一是修改pom.xml文件,二是编写代码生成类。涉及Java、MyBatis和MySQL等技术。
8264

被折叠的 条评论
为什么被折叠?



