代码生成器
import com.baomidou.mybatisplus.generator.FastAutoGenerator; import com.baomidou.mybatisplus.generator.config.OutputFile; import com.baomidou.mybatisplus.generator.config.TemplateType; import java.util.Arrays; import java.util.Collections; import java.util.List; public class Generator { private static final String USERNAME = System.getenv().get("USER"); /** * 项目信息 */ private static final String PROJECT_PATH = System.getProperty("user.dir"); private static final String JAVA_PATH = "/src/main/java"; private static final String RESOURCE_PATH = "/src/main/resources"; private static final String BASE_PACKAGE = "io.github.xxyopen.novel"; /** * 数据库信息 */ private static final String DATABASE_IP = "127.0.0.1"; private static final String DATABASE_PORT = "3306"; private static final String DATABASE_NAME = "novel"; private static final String DATABASE_USERNAME = "root"; private static final String DATABASE_PASSWORD = "test123456"; public static void main(String[] args) { // 传入需要生成的表名,多个用英文逗号分隔,所有用 all 表示 genCode("sys_user"); } /** * 代码生成 */ private static void genCode(String tables) { // 全局配置 FastAutoGenerator.create(String.format("jdbc:mysql://%s:%s/%s?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai", DATABASE_IP, DATABASE_PORT, DATABASE_NAME), DATABASE_USERNAME, DATABASE_PASSWORD) .globalConfig(builder -> { builder.author(USERNAME) // 设置作者 .fileOverride() // kotlin //.enableSwagger() // 开启 swagger 模式 .fileOverride() // 覆盖已生成文件 .commentDate("yyyy/MM/dd") .outputDir(PROJECT_PATH + JAVA_PATH); // 指定输出目录 }) // 包配置 .packageConfig(builder -> builder.parent(BASE_PACKAGE) // 设置父包名 .entity("dao.entity") .service("service") .serviceImpl("service.impl") .mapper("dao.mapper") .controller("controller.front") .pathInfo(Collections.singletonMap(OutputFile.mapperXml, PROJECT_PATH + RESOURCE_PATH + "/mapper"))) // 模版配置 .templateConfig(builder -> builder.disable(TemplateType.SERVICE) .disable(TemplateType.SERVICEIMPL) .disable(TemplateType.CONTROLLER)) // 策略配置 .strategyConfig(builder -> builder.addInclude(getTables(tables)) // 设置需要生成的表名 .controllerBuilder() .enableRestStyle() .serviceBuilder() .formatServiceFileName("%sService") ) // 开启生成@RestController 控制器 //.templateEngine(new FreemarkerTemplateEngine()) // 使用Freemarker引擎模板,默认的是Velocity引擎模板 .execute(); } /** * 处理 all 和多表情况 */ protected static List<String> getTables(String tables) { return "all".equals(tables) ? Collections.emptyList() : Arrays.asList(tables.split(",")); } }
本文作者:xiaoovo
本文链接:https://www.cnblogs.com/xiaoovo/p/18142097
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
2022-04-18 String,StringBuilder,StringBuffer效率比较