简介
AutoGenerator 是 MyBatis-Plus 的代码生成器,通过 AutoGenerator 可以快速生成 Entity、Mapper、Mapper XML、Service、Controller 等各个模块的代码,极大的提升了开发效率。
引入对应 JAR
<!-- Apache velocity -->
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity-engine-core</artifactId>
<version>2.0</version>
</dependency>
<!-- sfl4j -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.7</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.7</version>
</dependency>
示例代码
@Test
public void test() {
// 1. 全局配置
GlobalConfig config = new GlobalConfig();
config.setActiveRecord(true) // 是否支持AR模式
.setAuthor("admin") // 作者
.setOutputDir("E:\\workspaces\\sts\\MyBatisPlusExample\\src\\main\\java") // 生成路径
.setFileOverride(true) // 文件覆盖
.setIdType(IdType.AUTO) // 主键策略
.setServiceName("%sService") // 设置生成的service接口的名字的首字母是否为I(默认Service类前面有一个I)
.setBaseResultMap(true)// 基本ResultMap
.setBaseColumnList(true);// 基本的列
// 2. 数据源配置
DataSourceConfig dsConfig = new DataSourceConfig();
dsConfig.setDbType(DbType.MYSQL) // 设置数据库类型
.setDriverName("com.mysql.jdbc.Driver").setUrl("jdbc:mysql://localhost:3306/test").setUsername("root").setPassword("root");
// 3. 策略配置
StrategyConfig stConfig = new StrategyConfig();
stConfig.setCapitalMode(true)// 全局大写命名
.setDbColumnUnderline(true)// 指定表名,字段名是否使用下划线
.setNaming(NamingStrategy.underline_to_camel)// 数据库表映射到实体的命名策略
.setTablePrefix("tbl_")// 设置表的前缀
.setInclude("book_info"); // 生成的表
// 4. 包名策略配置
PackageConfig pkConfig = new PackageConfig();
pkConfig.setParent("com.javaee.mp")// 设置父包
.setMapper("dao")// dao层
.setService("service")// Service 层
.setController("controller")// Controller 层
.setEntity("pojo")// 实体类
.setXml("mapper");// 接口映射的xml文件
// 5. 整合配置
AutoGenerator ag = new AutoGenerator();
ag.setGlobalConfig(config).setDataSource(dsConfig).setStrategy(stConfig).setPackageInfo(pkConfig);
// 6. 执行
ag.execute();
}