MyBatis-Plus代码自动生成步骤
1. 导入相关依赖
<!--mybatis-plus依赖-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus</artifactId>
<version>3.3.2</version>
</dependency>
<!--mybatis-plus代码自动生成依赖jar-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>3.3.2</version>
</dependency>
<!--模板引擎 MyBatis-Plus支持Velocity(默认)、Freemarker、Beetl等-->
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity-engine-core</artifactId>
<version>2.2</version>
</dependency>
<!--swagger文档jar(根据需求可有可无)-->
<dependency>
<groupId>io.swagger</groupId>
<artifactId>swagger-annotations</artifactId>
<version>1.5.22</version>
</dependency>
<!--lombok依赖(根据需求可有可无)-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.12</version>
<scope>provided</scope>
</dependency>
2. 配置工具类
import com.baomidou.mybatisplus.annotation.DbType;
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.rules.DateType;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
/**
* description: AutomaticCodeGenerationMyBatisPlus:[myBatis_Plus支持的代码自动生成器]<br>
* author: zanY<br>
* version: 1.0<br>
*/
public class AutomaticCodeGenerationMyBatisPlus {
public static void main(String[] args) {
/**
* 0. 首先构建一个代码生成器对象
*/
AutoGenerator autoGenerator = new AutoGenerator();
/**
* 1. 全局配置
* 需要修改:项目路径、作者、等。
*/
GlobalConfig config = new GlobalConfig();
/**
* 可动态设置输出的路径、也可以手动写入输出路径
* config.setOutputDir(System.getProperty("user.dir") + "/src/main/java");
* config.setOutputDir("F:/webApp/ssmp/src/main/java");
*/
config.setOutputDir("F:/webApp/ssmp/src/main/java");
config.setAuthor("zanY");
config.setOpen(false); // 是否打开资源管理器
config.setFileOverride(false); // 是否覆盖原先生成的
config.setServiceName("%sService"); // 去掉Service的I前缀
config.setDateType(DateType.ONLY_DATE); // 日期类型
config.setSwagger2(true); // 是否生成swagger文档(需要响应jar)
autoGenerator.setGlobalConfig(config);
/**
* 2. 配置数据源
* 需要修改:数据库名、数据库类型、等
*/
DataSourceConfig dataSource = new DataSourceConfig();
dataSource.setDriverName("com.mysql.jdbc.Driver");
dataSource.setUrl("jdbc:mysql://localhost:3306/oa_zan?relaxAutoCommit=true&zeroDateTimeBehavior=convertToNull");
dataSource.setUsername("root");
dataSource.setPassword("root");
dataSource.setDbType(DbType.MYSQL); // 数据库类型
autoGenerator.setDataSource(dataSource);
/**
* 3. 生成包
* 需要修改:模块名、包名、等(模块名不需要可不配置)
*/
PackageConfig packageConfig = new PackageConfig();
// packageConfig.setModuleName("yy"); // 模块名:com.ssmp.yy
packageConfig.setParent("com.ssmp"); // 包名
packageConfig.setEntity("pojo"); // 实体类包名
packageConfig.setMapper("mapper");
packageConfig.setService("service");
packageConfig.setController("controller");
autoGenerator.setPackageInfo(packageConfig);
/**
* 4. 策略配置
* 需要修改:表名、是否要支持@lombok、等
*/
StrategyConfig strategyConfig = new StrategyConfig();
// 可变长参数,数据库表名
strategyConfig.setInclude("oa_menu" , "oa_menu_info");
strategyConfig.setNaming(NamingStrategy.underline_to_camel); // 设置表名驼峰命名法
strategyConfig.setColumnNaming(NamingStrategy.underline_to_camel); // 设置字段名驼峰命名法
strategyConfig.setEntityLombokModel(true); // 是否支持开启lombok注解(需要响应jar)
autoGenerator.setStrategy(strategyConfig);
/**
* 5. 启动执行
*/
autoGenerator.execute();
/**
* 需要以下配置时,加入到策略配置即可
* strategyConfig.setLogicDeleteFieldName("逻辑删除的字段"); // 配置逻辑删除
* 自动填充策略 :
* TableFill t1 = new TableFill("数据库字段名" , FieldFill.INSERT); // 创建
* TableFill t2 = new TableFill("数据库字段名" , FieldFill.INSERT_UPDATE); // 修改
* ArrayList<TableFill> tableFills = new ArrayList<>();
* tableFills.add(t1);
* tableFills.add(t2);
* strategyConfig.setTableFillList(tableFills);
*/
}
}
- Mybatis-Plus 代码自动生成相对MyBatis 代码自动功能更丰富。
- MyBatis代码自动生成参考