最简便的反向类生成方法
需要引入的相关jar包
Maven项目的 pom.xml:
<!-- 整合mybatis -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatisplus-spring-boot-starter</artifactId>
<version>1.0.5</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.baomidou/mybatis-plus -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus</artifactId>
<version>2.3</version>
</dependency>
<!--mybatis代码生成器依赖-->
<dependency>
<groupId>org.freemarker</groupId>
<artifactId>freemarker</artifactId>
<version>2.3.23</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-core</artifactId>
<version>1.3.5</version>
<scope>test</scope>
</dependency>
web项目:
web的项目可以去网上mvnrepository仓库地址,可提供相关的依赖地址和jar下载等
代码生成反向类
引入相关包之后,不用配置xml等相关配置文件,只需要在工具类中配置即可。直接上代码:
package com.example.springboot_demo;
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.DbType;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;
import org.junit.Test;
/**
* 类名称:GeneratorTest
* 类描述:TODO
* 创建人:筱
* 创建时间:
* Version 1.0
*/
public class GeneratorTest {
@Test
public void generateCode() {
/*包名*/
String packageName = "com.example.springboot_demo";
/*表名*/
generateByTables(packageName, "test_a");
}
private void generateByTables(boolean serviceNameStartWithI, String packageName, String... tableNames) {
GlobalConfig config = new GlobalConfig();
/*数据连接地址和数据库名*/
String dbUrl = "jdbc:mysql://localhost:3306/test1?serverTimezone=GMT";
DataSourceConfig dataSourceConfig = new DataSourceConfig();
/*连接的数据库类型:mysql,sqlserver等*/
dataSourceConfig.setDbType(DbType.MYSQL)
/*数据库地址*/
.setUrl(dbUrl)
/*mysql账号*/
.setUsername("root")
/*mysql密码*/
.setPassword("")
.setDriverName("com.mysql.cj.jdbc.Driver");
StrategyConfig strategyConfig = new StrategyConfig();
strategyConfig
.setCapitalMode(true)
.setEntityLombokModel(false)
.setDbColumnUnderline(true)
.setNaming(NamingStrategy.underline_to_camel)
.setTablePrefix("sys_", "qd_")// 此处可以修改为您的表前缀
.setEntityColumnConstant(false) // 生成字段常量
.setInclude(tableNames); // 修改替换成你需要的表名,多个表名传数组
config.setActiveRecord(false)
.setEnableCache(false) // XML 二级缓存
.setBaseResultMap(true)
.setBaseColumnList(true)
.setAuthor("xiaoZe") //作者
.setOutputDir("D:\\Config") //输出目录
.setFileOverride(true);
if (!serviceNameStartWithI) {
config.setServiceName("%sService");
}
new AutoGenerator()
.setTemplateEngine(new FreemarkerTemplateEngine())
.setGlobalConfig(config)
.setDataSource(dataSourceConfig)
.setStrategy(strategyConfig)
.setPackageInfo(
new PackageConfig()
.setParent(packageName)
.setController("controller") //控制层所在的包名
.setEntity("entity") //实体类所在的包名
).execute();
}
private void generateByTables(String packageName, String... tableNames) {
generateByTables(true, packageName, tableNames);
}
}