MyBatis-Plus生成器是一個非常實用的插件,可以根據數據錶快速生成Mapper介面和對應的實體類,這將大大縮短開發周期,提高開發效率。本篇文章將從以下幾個方面對如何使用MyBatis-Plus生成器生成高效Mapper介面和實體類做詳細的闡述。
一、準備工作
在使用MyBatis-Plus生成器之前,需要做一些準備工作:
1. 在pom.xml文件中添加mybatis-plus-boot-starter和mysql-connector-java的依賴。
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.2</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.23</version>
</dependency>
2. 在application.yml配置文件中添加數據源配置和MyBatis-Plus配置。
spring:
datasource:
url: jdbc:mysql://localhost:3306/mybatis_plus?useUnicode=true&characterEncoding=utf-8
driver-class-name: com.mysql.cj.jdbc.Driver
username: root
password: 123456
mybatis-plus:
configuration:
map-underscore-to-camel-case: true
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
二、使用MyBatis-Plus生成器
使用MyBatis-Plus生成器生成高效Mapper介面和實體類的步驟如下:
1. 在IDEA中創建一個空的Maven項目,並添加上述依賴和配置文件。
2. 創建一個數據表,如下:
CREATE TABLE `user` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`name` varchar(50) NOT NULL,
`age` int(11) NOT NULL,
`email` varchar(50) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
3. 創建實體類User。
package com.example.mybatisplusdemo.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
@Data
@TableName(value = "user")
public class User {
@TableId(type = IdType.AUTO)
private Long id;
private String name;
private Integer age;
private String email;
}
4. 在pom.xml文件中添加MyBatis-Plus生成器的依賴。
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>3.4.2</version>
</dependency>
5. 創建GeneratorConfig類,用於配置生成器。
package com.example.mybatisplusdemo.config;
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;
/**
* MyBatis-Plus代碼生成器配置類
*/
public class GeneratorConfig {
public static void main(String[] args) {
// 1. 全局配置
GlobalConfig globalConfig = new GlobalConfig();
globalConfig
// 設置輸出路徑
.setOutputDir(System.getProperty("user.dir") + "/src/main/java")
// 設置作者
.setAuthor("Jack")
// 設置生成後是否打開資源管理器
.setOpen(false)
// 設置文件覆蓋
.setFileOverride(false)
// 設置主鍵生成策略
.setIdType(IdType.AUTO)
// 設置Service介面的首字母是否為I
.setServiceName("%sService")
// 設置Swagger註解生成
.setSwagger2(true);
// 2. 數據源配置
DataSourceConfig dataSourceConfig = new DataSourceConfig();
dataSourceConfig
// 設置資料庫類型
.setDbType(DbType.MYSQL)
// 設置url
.setUrl("jdbc:mysql://localhost:3306/mybatis_plus?useUnicode=true&characterEncoding=utf-8")
// 設置驅動
.setDriverName("com.mysql.cj.jdbc.Driver")
// 設置用戶名
.setUsername("root")
// 設置密碼
.setPassword("123456");
// 3. 包配置
PackageConfig packageConfig = new PackageConfig();
packageConfig
// 設置模塊名
.setModuleName("")
// 設置父包名
.setParent("com.example.mybatisplusdemo")
// 設置Controller包名
.setController("controller")
// 設置Service包名
.setService("service")
// 設置Service實現類包名
.setServiceImpl("service.impl")
// 設置Mapper包名
.setMapper("mapper")
// 設置實體類包名
.setEntity("entity")
// 設置XML文件包名
.setXml("mapper");
// 4. 策略配置
StrategyConfig strategyConfig = new StrategyConfig();
strategyConfig
// 開啟表名下劃線轉駝峰命名
.setNaming(NamingStrategy.underline_to_camel)
// 設置要生成的表
.setInclude("user")
// 設置表前綴
.setTablePrefix("t_")
// 開啟Lombok
.setEntityLombokModel(true)
// 開啟RestController
.setRestControllerStyle(true);
// 5. 代碼生成器
AutoGenerator autoGenerator = new AutoGenerator();
autoGenerator
.setGlobalConfig(globalConfig)
.setDataSource(dataSourceConfig)
.setPackageInfo(packageConfig)
.setStrategy(strategyConfig)
.execute();
}
}
6. 運行GeneratorConfig的main方法。生成後的Mapper介面和實體類將位於對應的包下,可供開發人員使用。
三、總結
本文詳細介紹了如何使用MyBatis-Plus生成器生成高效Mapper介面和實體類。通過在代碼中配置生成器,即可根據數據錶快速生成對應的Mapper介面和實體類,大大提高了開發效率。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/241304.html