引入依赖
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.3.2</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.30</version>
</dependency>
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity-engine-core</artifactId>
<version>2.0</version>
</dependency>
生成工具类
public class MyAutoGenerator {
public static void main(String[] args) {
autoGenerator();
}
//数据库表名
public static String[] dbList={
"t_magnetic_analysis_pro_base",
"t_magnetic_analysis_flux_leakage_density"
};
//可以配置去掉表的前缀,如sys_user--->user
public static String[] prefix={
"ele",
"sys"
};
/**
* mybatisplus代码生成器方法
*/
public static void autoGenerator() {
//代码生成器对象
AutoGenerator mpg = new AutoGenerator();
//1、全局配置
GlobalConfig gc = new GlobalConfig();
String projectPath = System.getProperty("user.dir");//用户目录,即项目目录
gc.setOutputDir(projectPath + "/generatortool/src/main/java");//输出目录
gc.setAuthor("WangZhiMing");//作者名称
gc.setOpen(false);//生成文件后是否打开资源管理器
gc.setFileOverride(false);//不要重新生成覆盖
gc.setServiceName("%sService");//去掉接口前面的字母I
//2、主键策略
gc.setIdType(IdType.AUTO);//设置主键自增策略
gc.setDateType(DateType.ONLY_DATE);//设置日期
//集成Swagger2
//gc.setSwagger2(true);//实体属性Swagger2注解
mpg.setGlobalConfig(gc);
// 3、数据源配置
DataSourceConfig dsc = new DataSourceConfig();
dsc.setUrl("jdbc:mysql://127.0.0.1:3306/fhxpg?useUnicode=true&characterEncoding=UTF-8&useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=GMT%2B8");
dsc.setDriverName("com.mysql.cj.jdbc.Driver");
dsc.setUsername("root");
dsc.setPassword("root");
dsc.setDbType(DbType.MYSQL);
mpg.setDataSource(dsc);
//4、自动生成包配置
PackageConfig packageConfig = new PackageConfig();
//packageConfig.setModuleName("blog");
packageConfig.setParent("com.energyfuture");
packageConfig.setController("controller");
packageConfig.setService("service");
packageConfig.setMapper("mapper");
packageConfig.setEntity("entity");
mpg.setPackageInfo(packageConfig);
//5、策略配置(主要修改配置)
StrategyConfig strategy = new StrategyConfig();
strategy.setInclude(dbList);//需要生成的表,可以使用正则表达式
strategy.setNaming(NamingStrategy.underline_to_camel);//下划线转驼峰
strategy.setColumnNaming(NamingStrategy.underline_to_camel);//字段生成驼峰
strategy.setTablePrefix(prefix);//不生成表的前缀
strategy.setEntityLombokModel(true);//生成lombok
strategy.setEntityTableFieldAnnotationEnable(true);//加上映射字段@TableFile和映射表名@TableName
strategy.setLogicDeleteFieldName("deleted");//逻辑删除字段
strategy.setEntityBooleanColumnRemoveIsPrefix(true);//去除Boolean前面的Is前缀
//6、自动填充
TableFill create_time = new TableFill("create_time", FieldFill.INSERT);
TableFill update_time = new TableFill("update_time", FieldFill.INSERT_UPDATE);
ArrayList<TableFill> list = new ArrayList<>();
list.add(create_time);
list.add(update_time);
strategy.setTableFillList(list);
//7、乐观锁
strategy.setVersionFieldName("version");//乐观锁
strategy.setRestControllerStyle(true);//开启RestController风格
strategy.setControllerMappingHyphenStyle(true);//url驼峰命名转换
mpg.setStrategy(strategy);
//8、执行
mpg.execute();
}
}