框架SpringBoot,集成Mybatis Plus实现代码自动生成
相关依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<!--使用mybatis plus-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.0.5</version>
</dependency>
<!--代码生成相关-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>3.0.5</version>
</dependency>
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity-engine-core</artifactId>
<version>2.3</version>
</dependency>
spring boot主配置文件
#设置开发环境
spring.profiles.active=dev
#配置数据库
spring.datasource.username=username *
spring.datasource.password=password *
spring.datasource.url=jdbc:mysql://localhost:3306/tableName?useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
#配置日志
mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl
#配置逻辑删除
mybatis-plus.global-config.db-config.logic-delete-value=1
mybatis-plus.global-config.db-config.logic-not-delete-value=0
public class AutoGenerateCode {
public static void main(String[] args) {
//构建代码生成器对象
AutoGenerator generator = new AutoGenerator();
//配置策略
//1.全局配置
GlobalConfig gc = new GlobalConfig();
String projectPath = System.getProperty("user.dir");//获取项目路径
gc.setOutputDir(projectPath + "/src/main/java");
gc.setAuthor("name"); //作者
gc.setOpen(false);
gc.setFileOverride(false);
gc.setServiceName("%sService");//去除service的i前缀
gc.setIdType(IdType.ID_WORKER);
gc.setDateType(DateType.ONLY_DATE);
generator.setGlobalConfig(gc);
//2.数据源配置
DataSourceConfig dsc = new DataSourceConfig();
dsc.setDriverName("com.mysql.cj.jdbc.Driver");
dsc.setUrl("jdbc:mysql://localhost:3306/table?useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8");
dsc.setUsername("username");
dsc.setPassword("password");
dsc.setDbType(DbType.MYSQL);
//3.指定生成的包
PackageConfig pc = new PackageConfig();
pc.setModuleName("blog");//项目模块名
pc.setParent("com.kali");//模块下的父级目录
pc.setEntity("pojo");//实体类包名
pc.setMapper("mapper");//映射包名
pc.setService("service");//service层
pc.setController("controller");//controller层
generator.setPackageInfo(pc);
//4.策略配置
StrategyConfig strategy = new StrategyConfig();
//这是非常重要的设置,user为数据库中的表,表不同生成不同
strategy.setInclude("user"); //设置要映射的数据库表名 支持多参数
strategy.setNaming(NamingStrategy.underline_to_camel);//驼峰命名
strategy.setColumnNaming(NamingStrategy.underline_to_camel);
strategy.setEntityLombokModel(true);//是否使用lombok
strategy.setLogicDeleteFieldName("deleted");//逻辑删除字段设置
//乐观锁
strategy.setVersionFieldName("version");//乐观锁字段设置
//自动填充策略
TableFill createTime = new TableFill("create_time", FieldFill.INSERT);//插入数据时自动填充
TableFill updateTime = new TableFill("update_time",FieldFill.INSERT_UPDATE);//更新时间 在插入和更新时自动填充
ArrayList<TableFill> tableList = new ArrayList<>();
tableList.add(createTime);
tableList.add(updateTime);
strategy.setTableFillList(tableList);//加入以上两个自动填充策略
strategy.setRestControllerStyle(true);//是否使用@RestController
generator.setStrategy(strategy);
generator.execute();//执行
}
}
生成结构如下: