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接口和实体类,大大提高了开发效率。