MyBatis-Plus 代码生成器使用教程:快速生成实体、Mapper、Service 代码
MyBatis-Plus 代码生成器使用教程
本文将介绍如何使用 MyBatis-Plus 代码生成器快速生成实体类、Mapper 接口、Service 接口和实现类。
1. 依赖引入
首先,需要在项目中添加 MyBatis-Plus 代码生成器的依赖:
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>3.5.1</version>
</dependency>
2. 代码示例
以下代码示例展示了如何使用代码生成器生成相关代码:
package com.cd.mybatisplus;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.generator.AutoGenerator;
import com.baomidou.mybatisplus.generator.config.*;
import com.baomidou.mybatisplus.generator.config.querys.MySqlQuery;
import com.baomidou.mybatisplus.generator.config.rules.DateType;
import com.baomidou.mybatisplus.generator.config.rules.DbColumnType;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
import java.util.Collections;
//代码生成器
public class MyGenerator {
public static void main(String[] args) {
/**
* 先配置数据源
*/
MySqlQuery mySqlQuery = new MySqlQuery() {
@Override
public String[] fieldCustom() {
return new String[]{"Default"};
}
};
DataSourceConfig dsc = new DataSourceConfig.Builder("jdbc:mysql://localhost:3306/exam?serverTimezone=Asia/Shanghai", "root", "123456")
.dbQuery(mySqlQuery).build();
//通过datasourceConfig创建AutoGenerator
AutoGenerator generator = new AutoGenerator(dsc);
/**
* 全局配置
*/
String projectPath = System.getProperty("user.dir"); //获取项目路径
String filePath = projectPath + "/src/main/java"; //java下的文件路径
GlobalConfig global = new GlobalConfig.Builder()
.outputDir(filePath)//生成的输出路径
.author("young")//生成的作者名字
//.enableSwagger()开启swagger,需要添加swagger依赖并配置
.dateType(DateType.TIME_PACK)//时间策略
.commentDate("yyyy年MM月dd日")//格式化时间格式
.fileOverride()//覆盖生成文件
.build();
/**
* 包配置
*/
PackageConfig packages = new PackageConfig.Builder()
.entity("pojo")//实体类包名
.parent("com.cd.mybatisplus")//父包名。如果为空,将下面子包名必须写全部, 否则就只需写子包名
.controller("controller")//控制层包名
.mapper("dao")//mapper层包名
.service("service")//service层包名
.serviceImpl("service.impl")//service实现类包名
.other("output")//输出自定义文件时的包名
.pathInfo(Collections.singletonMap(OutputFile.mapperXml, projectPath + "/src/main/resources/mapper")) //路径配置信息,就是配置各个文件模板的路径信息,这里以mapper.xml为例
.build();
/**
* 模板配置
*/
TemplateConfig template = new TemplateConfig.Builder().build();
/**
* 策略配置开始
*/
StrategyConfig strategyConfig = new StrategyConfig.Builder()
.enableCapitalMode()//开启全局大写命名
.addInclude()//添加表匹配,指定要生成的数据表名,不写默认选定数据库所有表
.entityBuilder() //实体策略配置
.enableChainModel()//开启链式模型
.enableLombok()//开启lombok
.enableRemoveIsPrefix()//开启 Boolean 类型字段移除 is 前缀
.enableTableFieldAnnotation()//开启生成实体时生成字段注解
//.addTableFills()添加表字段填充
.naming(NamingStrategy.underline_to_camel)//数据表映射实体命名策略:默认下划线转驼峰underline_to_camel
.columnNaming(NamingStrategy.underline_to_camel)//表字段映射实体属性命名规则:默认null,不指定按照naming执行
.idType(IdType.AUTO)//添加全局主键类型
.formatFileName("%s")//格式化实体名称,%s取消首字母I
.build()
.mapperBuilder()//mapper文件策略
.enableMapperAnnotation()//开启mapper注解 // .enableBaseResultMap()//启用xml文件中的BaseResultMap 生成 // .enableBaseColumnList()//启用xml文件中的BaseColumnList //.cache(缓存类.class)设置缓存实现类
.formatMapperFileName("%sMapper")//格式化Dao类名称
.formatXmlFileName("%sMapper")//格式化xml文件名称
.build()
.serviceBuilder()//service文件策略
.formatServiceFileName("%sService")//格式化 service 接口文件名称
.formatServiceImplFileName("%sServiceImpl")//格式化 service 接口文件名称
.build()
.controllerBuilder()//控制层策略
//.enableHyphenStyle()开启驼峰转连字符,默认:false
.enableRestStyle()//开启生成@RestController
.formatFileName("%sController")//格式化文件名称
.build();
/*至此,策略配置才算基本完成!*/
/**
* 将所有配置项整合到AutoGenerator中进行执行
*/
generator.global(global)
.template(template) // .injection(injectionConfig)
.packageInfo(packages)
.strategy(strategyConfig)
.execute();
}
}
3. 代码说明
- 数据源配置: 使用
DataSourceConfig类配置数据库连接信息,包括数据库地址、用户名、密码等。示例代码中使用了 MySQL 数据库,并使用了MySqlQuery类来指定数据库类型。 - 全局配置: 使用
GlobalConfig类配置生成代码的全局信息,包括输出路径、作者、日期格式、是否覆盖已有文件等。示例代码中将生成的代码输出到src/main/java目录下,作者设置为young,日期格式为yyyy年MM月dd日,并且允许覆盖已有文件。 - 包配置: 使用
PackageConfig类配置代码生成的包信息,包括实体类包名、控制层包名、Mapper 接口包名、Service 接口包名、Service 实现类包名等。示例代码中将实体类包名设置为pojo,控制层包名设置为controller,Mapper 接口包名设置为dao,Service 接口包名设置为service,Service 实现类包名设置为service.impl。 - 模板配置: 使用
TemplateConfig类配置代码生成的模板信息,可以自定义生成代码的模板文件。示例代码中没有自定义模板,使用默认的模板生成代码。 - 策略配置: 使用
StrategyConfig类配置代码生成的策略信息,包括是否开启全局大写命名、是否开启链式模型、是否开启 lombok、是否开启 Boolean 类型字段移除 is 前缀等。示例代码中开启了全局大写命名、链式模型、lombok、Boolean 类型字段移除 is 前缀等。 - 执行生成: 使用
AutoGenerator类将所有配置信息整合到一起,并执行生成代码。
4. 注意事项
- 以上代码示例仅供参考,实际使用中需要根据具体情况进行调整。
- 需要注意数据库类型,如果使用其他数据库,需要使用相应的
Query类来配置数据库类型。 - 可以通过修改
addInclude方法来指定要生成的数据表名。 - 可以通过修改
formatFileName方法来格式化生成的文件名。
5. 总结
MyBatis-Plus 代码生成器可以帮助开发者快速生成实体类、Mapper 接口、Service 接口和实现类,简化开发流程,提高开发效率。
希望本文能够帮助您更好地理解和使用 MyBatis-Plus 代码生成器。如果您还有其他问题,请随时提问。
原文地址: http://www.cveoy.top/t/topic/c4L4 著作权归作者所有。请勿转载和采集!