首先,我们需要了解一下mybatis-plus-generator的基本概念和用法。
mybatis-plus-generator是mybatis-plus框架中的一个代码自动生成工具,它能够根据数据库中的表结构自动生成实体类、Mapper接口、以及对应的XML文件等。使用mybatis-plus-generator可以大大提高我们的开发效率。
一、配置mybatis-plus-generator依赖
在使用mybatis-plus-generator之前,我们需要在项目中引入对应的依赖,比如:
<!--引入mybatis-plus-generator依赖-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>3.4.3</version>
</dependency>
二、配置生成代码所需的参数
在项目中配置好mybatis-plus-generator依赖之后,我们还需要在项目中添加一个配置文件,用于设置代码生成的相关参数。一般而言,我们可以使用yml文件或者properties文件来进行配置。
以下是一个基本的配置文件示例:
# 数据库配置
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8&useSSL=false
username: root
password: 123456
# mybatis-plus配置
mybatis-plus:
global-config:
db-config:
logic-delete-field: deleted
id-type: auto
logic-delete-value: 1
logic-not-delete-value: 0
generator:
outputDir: D:/workspace/mybatis-plus-generator
author: yourname
fileOverride: true
open: false
basePackage: com.example.mybatisplus
mapperPackage: mapper
xmlPackage: mapper.xml
servicePackage: service
serviceImplPackage: service.impl
auto-fill:
enable: true
create: false
update: false
delete: false
strategy:
tablePrefix: tb_
naming:
columnNaming: no_change
exclude:
# 排除的表名
- tb_user_log
其中,主要要关注的是generator节点的配置,我们可以通过配置该节点下的属性来控制代码生成的路径、作者、是否覆盖等相关信息。
三、运行mybatis-plus-generator生成代码
在完成配置文件的配置之后,我们就可以启动mybatis-plus-generator来自动生成代码了。一般情况下,我们可以编写一个启动类,然后在该启动类中调用mybatis-plus-generator的API来生成代码。
以下是一个基本的示例启动类:
package com.example.mybatisplus.generator;
import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.core.config.GlobalConfig;
import com.baomidou.mybatisplus.generator.AutoGenerator;
import com.baomidou.mybatisplus.generator.config.DataSourceConfig;
import com.baomidou.mybatisplus.generator.config.GlobalConfigUtils;
import com.baomidou.mybatisplus.generator.config.PackageConfig;
import com.baomidou.mybatisplus.generator.config.StrategyConfig;
import com.baomidou.mybatisplus.generator.config.rules.DateType;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;
/**
* mybatis-plus-generator代码自动生成启动类
*/
public class MybatisPlusGeneratorApplication {
public static void main(String[] args) {
// 1.创建代码生成器
AutoGenerator autoGenerator = new AutoGenerator();
// 2.设置数据源
autoGenerator.setDataSource(new DataSourceConfig.Builder("jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8&useSSL=false", "root", "123456").driver(DbType.MYSQL.getDriverClassName()).build());
// 3.设置全局配置
GlobalConfig globalConfig = GlobalConfigUtils.getDefaultGlobalConfig();
globalConfig.setAuthor("yourname");
globalConfig.setOutputDir("D:/workspace/mybatis-plus-generator");
globalConfig.setFileOverride(true);
globalConfig.setOpen(false);
globalConfig.setIdType(IdType.AUTO);
globalConfig.setDateType(DateType.ONLY_DATE);
autoGenerator.setGlobalConfig(globalConfig);
// 4.设置包名配置
PackageConfig packageConfig = new PackageConfig();
packageConfig.setParent("com.example.mybatisplus");
packageConfig.setMapper("mapper");
packageConfig.setXml("mapper.xml");
packageConfig.setEntity("entity");
packageConfig.setService("service");
packageConfig.setServiceImpl("service.impl");
autoGenerator.setPackageInfo(packageConfig);
// 5.设置策略配置
StrategyConfig strategyConfig = new StrategyConfig();
strategyConfig.setInclude("tb_user");
strategyConfig.setTablePrefix("tb_");
strategyConfig.setNaming(NamingStrategy.underline_to_camel);
strategyConfig.setColumnNaming(NamingStrategy.no_change);
strategyConfig.setEntityLombokModel(true);
strategyConfig.setLogicDeleteFieldName("deleted");
strategyConfig.setVersionFieldName("version");
autoGenerator.setStrategy(strategyConfig);
// 6.选择freemarker模板引擎
autoGenerator.setTemplateEngine(new FreemarkerTemplateEngine());
// 7.执行代码生成操作
autoGenerator.execute();
}
}
在启动该启动类之后,mybatis-plus-generator就会根据我们的配置文件来生成对应的代码。
以上便是使用mybatis-plus-generator进行代码自动生成的完整攻略。下面给出两个实际的示例说明。
示例1:生成单表的CURD代码
假设我们有一张名为tb_user的表,我们可以通过以下配置来生成对应的CURD代码:
mybatis-plus:
generator:
outputDir: D:/workspace/mybatis-plus-generator
author: yourname
fileOverride: true
open: false
basePackage: com.example.mybatisplus
mapperPackage: mapper
xmlPackage: mapper.xml
servicePackage: service
serviceImplPackage: service.impl
strategy:
tablePrefix: tb_
naming:
columnNaming: no_change
其中,我们只需要设置需要生成代码的表名即可:
StrategyConfig strategyConfig = new StrategyConfig();
strategyConfig.setInclude("tb_user");
示例2:生成多表的代码
假设我们有多张表需要生成对应的代码,我们可以通过以下配置来实现:
mybatis-plus:
generator:
outputDir: D:/workspace/mybatis-plus-generator
author: yourname
fileOverride: true
open: false
basePackage: com.example.mybatisplus
mapperPackage: mapper
xmlPackage: mapper.xml
servicePackage: service
serviceImplPackage: service.impl
strategy:
tablePrefix: tb_
naming:
columnNaming: no_change
include:
- tb_user
- tb_role
其中,我们只需要在include节点下添加需要生成代码的表名即可。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:使用mybatis-plus-generator进行代码自动生成的方法 - Python技术站