基于mybatis-plus-generator(velocity)的代码生成器
文章目录
前言
在java开发中,经常需要创建常用的包、类,他们的代码格式是固定的,所以我们可以用代码生成器自动生成这些类,例如常见的dao,entity类。
一、在pom.xml中引入相关依赖
<!--mybatisplus-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.1</version>
</dependency>
<!--druid-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.16</version>
</dependency>
<!--lombok-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.24</version>
</dependency>
<!--代码生成器-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>3.4.1</version>
</dependency>
<!--velocity模板引擎-->
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity-engine-core</artifactId>
<version>2.3</version>
</dependency>
二、编写Generator类
1.创建Generator类
2.编写Generator类(根据自己的需求更改)
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;
/**
* @author AustinJoe
* @version 1.0
* @date 2022/5/18 14:46
*/
public class Generator {
public static void main(String[] args) {
AutoGenerator autoGenerator = new AutoGenerator();
// 配置数据源
DataSourceConfig dataSource = new DataSourceConfig();
dataSource.setDriverName("com.mysql.cj.jdbc.Driver");
dataSource.setUrl("jdbc:mysql://localhost:3306/test");
dataSource.setUsername("root");
dataSource.setPassword("123456");
autoGenerator.setDataSource(dataSource);
// 设置全局配置
GlobalConfig globalConfig = new GlobalConfig();
globalConfig.setOutputDir(System.getProperty("user.dir")+"/src/main/java");// 配置全局路径
globalConfig.setAuthor("黄柏辉");// 配置作者名称
globalConfig.setFileOverride(true);// 配置文件是否覆盖
globalConfig.setIdType(IdType.ASSIGN_ID);// 配置ID生成策略
autoGenerator.setGlobalConfig(globalConfig);
// 包名相关配置
PackageConfig packageInfo = new PackageConfig();
packageInfo.setParent("com.hbh");// 设置包名
autoGenerator.setPackageInfo(packageInfo);
// 策略配置
StrategyConfig strategy = new StrategyConfig();
//strategy.setInclude("tbl_user");//参与生成的表单,默认全选
strategy.setTablePrefix("tbl_");//表单前缀
strategy.setRestControllerStyle(true);//是否启用Rest风格
strategy.setVersionFieldName("version");//乐观锁字段名称
strategy.setLogicDeleteFieldName("deleted");//逻辑删除字段名称
strategy.setEntityLombokModel(true);//是否启用Lombok
autoGenerator.setStrategy(strategy);
autoGenerator.execute();
}
}