六、自动生成代码
-
引入依赖
<!--用于自动生成代码--> <dependency> <groupId>org.apache.velocity</groupId> <artifactId>velocity-engine-core</artifactId> <version>2.0</version> </dependency>
-
新建测试类
package com.jx; import com.baomidou.mybatisplus.annotation.DbType; import com.baomidou.mybatisplus.annotation.FieldFill; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.generator.AutoGenerator; import com.baomidou.mybatisplus.generator.config.DataSourceConfig; import com.baomidou.mybatisplus.generator.config.GlobalConfig; import com.baomidou.mybatisplus.generator.config.PackageConfig; import com.baomidou.mybatisplus.generator.config.StrategyConfig; import com.baomidou.mybatisplus.generator.config.po.TableFill; import com.baomidou.mybatisplus.generator.config.rules.DateType; import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy; import java.util.ArrayList; public class AutoGenerateCode { public static void main(String[] args) { AutoGenerator autoGenerator = new AutoGenerator(); String projectPath = System.getProperty("user.dir"); //代码生成器配置 GlobalConfig globalConfig = new GlobalConfig(); globalConfig.setOutputDir(projectPath+"/src/main/java"); globalConfig.setAuthor("jx"); globalConfig.setOpen(false);//是否覆盖 globalConfig.setServiceName("%sService");//去I前缀 globalConfig.setIdType(IdType.AUTO);//自增 globalConfig.setDateType(DateType.ONLY_DATE);//日期类型 globalConfig.setSwagger2(true); autoGenerator.setGlobalConfig(globalConfig); //数据源 DataSourceConfig dataSourceConfig = new DataSourceConfig(); dataSourceConfig.setUrl("jdbc:mysql://localhost:3306/mybatis_plus?useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=UTC"); dataSourceConfig.setDriverName("com.mysql.cj.jdbc.Driver"); dataSourceConfig.setUsername("root"); dataSourceConfig.setPassword("123456"); dataSourceConfig.setDbType(DbType.MYSQL); autoGenerator.setDataSource(dataSourceConfig); //包配置 PackageConfig packageConfig = new PackageConfig(); packageConfig.setModuleName("autocode"); packageConfig.setParent("com.jx"); packageConfig.setEntity("pojo"); packageConfig.setMapper("mapper"); packageConfig.setService("service"); packageConfig.setController("controller"); autoGenerator.setPackageInfo(packageConfig); //策略配置 StrategyConfig strategy = new StrategyConfig(); strategy.setInclude("user");//包含的表 strategy.setNaming(NamingStrategy.underline_to_camel); strategy.setColumnNaming(NamingStrategy.underline_to_camel); /* strategy.setSuperEntityClass("你自己的父类实体,没有就不用设置!");*/ strategy.setEntityLombokModel(true);//lombok //自动填充策略 strategy.setLogicDeleteFieldName("deleted"); TableFill createTime = new TableFill("create_time", FieldFill.INSERT); TableFill updateTime = new TableFill("update_time", FieldFill.INSERT_UPDATE); ArrayList<TableFill> tableFills = new ArrayList<>(); tableFills.add(createTime); tableFills.add(updateTime); strategy.setTableFillList(tableFills); //乐观锁字段 strategy.setVersionFieldName("version"); //rest风格 strategy.setRestControllerStyle(true); strategy.setControllerMappingHyphenStyle(true);//下划线链接 autoGenerator.setStrategy(strategy); autoGenerator.execute(); } }