idea環境
第一種方法
generator
插件 小鳥圖標 gui
界面 mybatis generator code helper pro
第二種方法
通過配置generator
文件完成,配置步驟如下
- 首先得保證數據庫中有要生成的表,以
sys_user
爲例 - 添加生成器依賴
<!--加入mybatis-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.2.0</version>
</dependency>
<!--加入mysql-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<!--代碼生成器依賴-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>3.2.0</version>
</dependency>
<!--添加 模板引擎 依賴,MyBatis-Plus 支持 Velocity(默認)、Freemarker、Beetl,
用戶可以選擇自己熟悉的模板引擎,如果都不滿足您的要求,可以採用自定義模板引擎。-->
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity-engine-core</artifactId>
<version>2.2</version>
</dependency>
- 在
.properties
中配置數據源
# DataSource Config
spring.datasource.driver-class-name = com.mysql.cj.jdbc.Driver
spring.datasource.url = jdbc:mysql://localhost:3306/user?useUnicode=true&characterEncoding=utf8&useSSL=true&serverTimezone=UTC
spring.datasource.username = root
spring.datasource.password = 123456
- 在
test
中新建一個類TestMP
,功能詳見註釋,更多功能訪問mybatis-plus
官網
package com.example.mybatisplus_study;
import com.baomidou.mybatisplus.annotation.DbType;
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;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
@SpringBootTest
public class TestMP {
//作者
private static String author = "ChenXueJun";
//生成位置
private static String outPath = "D:\\MP_AutoGenerator\\";
//驅動
private static String driver = "com.mysql.cj.jdbc.Driver";
//鏈接路徑
private static String url = "jdbc:mysql://127.0.0.1:3306/user?useUnicode=true&characterEncoding=utf-8&serverTimezone=UTC";
//數據庫用戶名
private static String username = "root";
//數據庫密碼
private static String password = "123456";
//數據庫表的前綴
private static String tablePrefix = "sys_";
//需要生成的表名
private static String [] tables = {"sys_user","sys_role"};
//頂級包結構
private static String parentPackage = "com.example.mybatisplus_study";
//數據訪問層包名
private static String dao = "dao";
//業務層包名
private static String service = "service";
//實體層包名
private static String entity = "entity";
//控制層包名
private static String controller = "controller";
//mapper映射文件包名
private static String mapperxml = "mapper";
//模塊名
private static String modulname = "system";
@Test
public void testCreat() {
//1.全局配置
GlobalConfig config = new GlobalConfig();
config.setAuthor(author)//作者
.setOutputDir(outPath)//生成路徑
.setFileOverride(true)//文件覆蓋
.setIdType(IdType.AUTO)//主鍵策略
.setServiceName("%sService")
//設置生成的Service接口名字的首字母是否爲I,加上%s則不生成I
.setBaseResultMap(true)//映射文件中是否生成ResultMap配置
.setBaseColumnList(true);//生成通用sql字段
//2.數據源配置
DataSourceConfig dsConfig = new DataSourceConfig();
dsConfig.setDbType(DbType.MYSQL)//設置數據庫類型
.setDriverName(driver)//設置驅動
.setUrl(url)//設置連接路徑
.setUsername(username)//設置用戶名
.setPassword(password);//設置密碼
//3.策略配置
StrategyConfig strategyConfig = new StrategyConfig();
strategyConfig.setCapitalMode(true)//全局大寫命名
.setNaming(NamingStrategy.underline_to_camel)//數據庫表映射到實體的命名策略
.setTablePrefix(tablePrefix)//表前綴
.setInclude(tables);//生成的表
//4.包名策略
PackageConfig packageConfig = new PackageConfig();
packageConfig.setParent(parentPackage)//頂級包結構
.setModuleName(modulname)
.setMapper(dao)//數據訪問層
.setXml(mapperxml)//mapper映射文件
.setService(service)//業務邏輯層
.setController(controller)//控制器
.setEntity(entity);//實體類
//5.綜合配置
AutoGenerator autoGenerator = new AutoGenerator();
autoGenerator.setGlobalConfig(config)
.setDataSource(dsConfig)
.setStrategy(strategyConfig)
.setPackageInfo(packageConfig);
//6.執行
autoGenerator.execute();
}
}
- 執行該類,即可在
D:\MP_AutoGenerator\
看到自動生成的代碼 - 附一個簡單的工程文件,提取碼:1f89