Mybatis-Plus系列---【代码生成器】
1.引入pom依赖
<!--我的是springCloud项目,这个放在了fast-service的pom文件中--> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.4.3.4</version> </dependency> <!--上边的依赖包含这个生成器,若只是想用代码生成,引入这个包就行--> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-generator</artifactId> <version>3.4.1</version> </dependency> <!--我的是springCloud项目,这个放在了fast-service的pom文件中,MyBatis-Plus 支持 Velocity(默认)--> <dependency> <groupId>org.apache.velocity</groupId> <artifactId>velocity-engine-core</artifactId> <version>2.3</version> </dependency>
或者
<dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-generator</artifactId> <version>3.3.2</version> </dependency> <dependency> <groupId>org.freemarker</groupId> <artifactId>freemarker</artifactId> <version>2.3.29</version> </dependency>
2.代码配置类
/** * mybatis-plus-generator: 3.3.2 * freemarker: 2.3.29或2.3.28 */ public class FastGenerator { public static void main(String[] args) { // 代码生成器 AutoGenerator mpg = new AutoGenerator(); // 全局配置 GlobalConfig gc = new GlobalConfig(); String projectPath = System.getProperty("user.dir"); //只用写到java目录 gc.setOutputDir(projectPath + "/fast-boot/src/main/java"); gc.setAuthor("hujunwei"); //生成后是否打开资源管理器 gc.setOpen(false); //重新生成文件时是否覆盖 gc.setFileOverride(true); //类名生成规则,去掉Service接口的首字母 gc.setServiceName("%sService"); gc.setControllerName("%sController"); gc.setServiceName("%sService"); gc.setServiceImplName("%sServiceImpl"); gc.setMapperName("%sMapper"); gc.setXmlName("%sMapper"); //主键策略 gc.setIdType(IdType.ASSIGN_ID); //定义生成的实体类中日期类型 gc.setDateType(DateType.TIME_PACK); //开启swagger2模式 gc.setSwagger2(true); //包路径配置 PackageConfig packageConfig = new PackageConfig(); packageConfig.setParent("com.fast"); packageConfig.setEntity("entity"); packageConfig.setController("controller"); packageConfig.setService("service"); packageConfig.setServiceImpl("service.impl"); packageConfig.setMapper("mapper"); packageConfig.setXml("mapper.xml"); mpg.setPackageInfo(packageConfig); mpg.setGlobalConfig(gc); // Mysql数据源配置 DataSourceConfig dsc = new DataSourceConfig(); dsc.setUrl("jdbc:mysql://192.168.0.102:3306/fast-boot?useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8"); dsc.setDriverName("com.mysql.cj.jdbc.Driver"); dsc.setUsername("root"); dsc.setPassword("hujunwei"); dsc.setDbType(DbType.MYSQL); //Oracle数据源配置 // DataSourceConfig dsc2 = new DataSourceConfig(); // dsc.setUrl("jdbc:oracle:thin:@10.51.230.111:1521/orcl"); // dsc.setDriverName("oracle.jdbc.driver.OracleDriver"); // dsc2.setUsername("root"); // dsc2.setPassword("hujunwei"); // dsc.setDbType(DbType.ORACLE); mpg.setDataSource(dsc); // 策略配置 StrategyConfig strategy = new StrategyConfig(); //对哪些表生成代码,多个用逗号隔开,把这句话注掉则默认生成所有表 strategy.setInclude("role"); //数据库表名转实体:下划线转驼峰 strategy.setNaming(NamingStrategy.underline_to_camel); //数据库表字段名转实体:下划线转驼峰 strategy.setColumnNaming(NamingStrategy.underline_to_camel); //生成实体时,去掉表前缀 strategy.setTablePrefix("fast_system_"); //lombok 模型 @Accessors(chain = true) setter链式操作 strategy.setEntityLombokModel(true); //restful api风格控制器 strategy.setRestControllerStyle(true); //url中驼峰转下划线 strategy.setControllerMappingHyphenStyle(true); //设置自动填充字段 List<TableFill> tableFillList = new ArrayList<>(); tableFillList.add(new TableFill("update_by", FieldFill.INSERT_UPDATE)); tableFillList.add(new TableFill("update_time", FieldFill.INSERT_UPDATE)); tableFillList.add(new TableFill("create_by", FieldFill.INSERT)); tableFillList.add(new TableFill("create_time", FieldFill.INSERT)); tableFillList.add(new TableFill("status", FieldFill.INSERT)); tableFillList.add(new TableFill("del_flag", FieldFill.INSERT)); strategy.setTableFillList(tableFillList); mpg.setStrategy(strategy); mpg.setTemplateEngine(new FreemarkerTemplateEngine()); mpg.execute(); } }
3.备用模板
<dependency> <groupId>org.freemarker</groupId> <artifactId>freemarker</artifactId> <version>2.3.30</version> </dependency> <!-- https://mvnrepository.com/artifact/com.ibeetl/beetl --> <dependency> <groupId>com.ibeetl</groupId> <artifactId>beetl</artifactId> <version>3.1.3.RELEASE</version> </dependency>
愿你走出半生,归来仍是少年!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?