MyBatis-Plus代码生成器:轻松实现高效数据库操作

一、MyBatis-Plus简介
MyBatis-Plus是一款基于MyBatis的增强工具,在MyBatis的基础上只做增强不做改变,为简化开发、提高效率而生。它支持自定义SQL、自动填充、乐观锁、动态表名等功能,极大地提升了开发效率。而在MyBatis-Plus中,代码生成器是一个非常重要的功能,可以帮助开发者快速生成实体类、Mapper接口、Mapper XML等代码,从而降低开发成本。
二、MyBatis-Plus代码生成器概述
MyBatis-Plus代码生成器是基于MyBatis-Plus官方提供的代码生成器进行封装和扩展,旨在提高代码生成效率,满足不同场景下的开发需求。它支持多种数据库、多种模板引擎,并提供丰富的配置项,让开发者可以轻松定制代码生成规则。
三、MyBatis-Plus代码生成器特点
1. 支持多种数据库:MyBatis-Plus代码生成器支持MySQL、Oracle、SQL Server、PostgreSQL等多种数据库,满足不同项目的需求。
2. 丰富的配置项:代码生成器提供丰富的配置项,如字段类型、字段名称、表名、实体类名称、Mapper接口名称、Mapper XML名称等,开发者可以根据实际需求进行配置。
3. 模板引擎支持:代码生成器支持多种模板引擎,如Freemarker、Velocity、Beetl等,方便开发者根据项目需求选择合适的模板引擎。
4. 高度可定制:开发者可以根据实际需求对代码生成器进行扩展,如自定义字段类型转换、自定义实体类注解等。
5. 生成多种代码:代码生成器可以生成实体类、Mapper接口、Mapper XML、Service接口、Service实现类、Controller等代码,满足不同层级的开发需求。
四、MyBatis-Plus代码生成器使用方法
1. 添加依赖
在项目的pom.xml文件中添加MyBatis-Plus和代码生成器的依赖:
```xml
```
2. 配置数据源
在application.properties或application.yml文件中配置数据源信息:
```properties
spring.datasource.url=jdbc:mysql://localhost:3306/mydb?useUnicode=true&characterEncoding=utf-8
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
```
3. 配置代码生成器
在application.yml文件中配置代码生成器:
```yaml
mybatis-plus:
generator:
output-dir: src/main/java
author: yourName
file-name: ${tablePrefix}_${tableName}
mapper-locations: src/main/java/mapper/
xml-output-dir: src/main/resources/mapper/
service-locations: src/main/java/service/
service-impl-locations: src/main/java/service/impl/
controller-locations: src/main/java/controller/
base-result-map-locations: src/main/resources/mapper/common/
base-mapper-locations: src/main/resources/mapper/common/
db-config:
type: com.baomidou.mybatisplus.extension.parsers.MySqlParser
config:
dbType: mysql
strategy:
entity-lower-case: true
entity-table-name: true
mapper-name: ${tablePrefix}Mapper
mapper-output-dir: src/main/java/mapper/
xml-output-dir: src/main/resources/mapper/
service-name: ${tablePrefix}Service
service-impl-name: ${tablePrefix}ServiceImpl
controller-name: ${tablePrefix}Controller
controller-annotations: RestController
naming-strategy:
name: custom
custom:
entity: CustomEntityNamingStrategy
column: CustomColumnNamingStrategy
mapper: CustomMapperNamingStrategy
xml: CustomXmlNamingStrategy
service: CustomServiceNamingStrategy
service-impl: CustomServiceImplNamingStrategy
controller: CustomControllerNamingStrategy
global-config:
id-type: auto
db-config:
table-prefix: t_
```
4. 生成代码
在项目中创建一个Java类,用于启动代码生成器:
```java
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;
public class CodeGenerator {
public static void main(String[] args) {
// 创建代码生成器
AutoGenerator mpg = new AutoGenerator();
// 配置数据源
DataSourceConfig dsc = new DataSourceConfig();
dsc.setUrl("jdbc:mysql://localhost:3306/mydb?useUnicode=true&characterEncoding=utf-8");
dsc.setDriverName("com.mysql.cj.jdbc.Driver");
dsc.setUsername("root");
dsc.setPassword("root");
mpg.setDataSource(dsc);
// 配置全局配置
GlobalConfig gc = new GlobalConfig();
gc.setOutputDir(System.getProperty("user.dir") + "/src/main/java");
gc.setAuthor("yourName");
gc.setOpen(false);
mpg.setGlobalConfig(gc);
// 配置包信息
PackageConfig pc = new PackageConfig();
pc.setModuleName("module");
pc.setParent("com.example.project");
mpg.setPackageInfo(pc);
// 配置策略
StrategyConfig strategy = new StrategyConfig();
strategy.setInclude("table_name"); // 设置要生成的表名
strategy.setNaming(NamingStrategy.underline_to_camel);
strategy.setColumnNaming(NamingStrategy.underline_to_camel);
mpg.setStrategy(strategy);
// 执行生成
mpg.execute();
}
}
```
5. 运行程序
运行CodeGenerator类,代码生成器会根据配置生成相应的代码。
五、总结
MyBatis-Plus代码生成器是一款非常实用的工具,可以帮助开发者快速生成代码,提高开发效率。通过本文的介绍,相信大家对MyBatis-Plus代码生成器有了更深入的了解。在实际开发过程中,合理运用代码生成器,可以大大降低开发成本,提高项目进度。






