1.关键依赖:
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.2</version>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>3.4.1</version>
</dependency>
<dependency>
<groupId>org.freemarker</groupId>
<artifactId>freemarker</artifactId>
<version>2.3.31</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
2.创建配置类,配置分页插件
@Configuration
@EnableTransactionManagement
@MapperScan("com.**.mapper")
public class MybatisPlusConfig {
//分页插件
//旧版配置,以过时
@Bean
public PaginationInterceptor paginationInterceptor() {
PaginationInterceptor paginationInterceptor = new PaginationInterceptor();
return paginationInterceptor;
}
//新版配置
@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor() {
MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
return interceptor;
}
}
3.自定义代码生成器类
public static void main(String[] args) {
AutoGenerator autoGenerator = new AutoGenerator();
//使用非默认模板引擎
autoGenerator.setTemplateEngine(new FreemarkerTemplateEngine());
//全局配置
GlobalConfig globalConfig = new GlobalConfig();
globalConfig.setOutputDir(System.getProperty("user.dir") + "/src/main/java");
globalConfig.setAuthor("***");
globalConfig.setOpen(false);
globalConfig.setFileOverride(false);
globalConfig.setServiceName("%sService");
globalConfig.setSwagger2(true);
autoGenerator.setGlobalConfig(globalConfig);
//数据源配置
DataSourceConfig dataSourceConfig = new DataSourceConfig();
dataSourceConfig.setUrl("jdbc:mysql://localhost:3306/**?useUnicode=true&useSSL=false&characterEncoding=utf8");
dataSourceConfig.setDriverName("com.mysql.cj.jdbc.Driver");
dataSourceConfig.setUsername("root");
dataSourceConfig.setPassword("***");
autoGenerator.setDataSource(dataSourceConfig);
//包的配置
PackageConfig packageConfig = new PackageConfig();
packageConfig.setModuleName("**");
packageConfig.setParent("com.**");
packageConfig.setEntity("entity");
packageConfig.setMapper("mapper");
packageConfig.setService("service");
packageConfig.setController("controller");
autoGenerator.setPackageInfo(packageConfig);
//策略配置
StrategyConfig strategyConfig = new StrategyConfig();
strategyConfig.setInclude("***");//要生成的数据库表名
strategyConfig.setNaming(NamingStrategy.underline_to_camel);// 命名驼峰转下划线
strategyConfig.setColumnNaming(NamingStrategy.underline_to_camel);
strategyConfig.setEntityLombokModel(true);//自动lombok
//自动填充配置
TableFill creatTime = new TableFill("create_time", FieldFill.INSERT);
ArrayList<TableFill> tableFills = new ArrayList<>();
tableFills.add(creatTime);
strategyConfig.setTableFillList(tableFills);
autoGenerator.setStrategy(strategyConfig);
//执行
autoGenerator.execute();
}