在项目的 pom.xml 文件中添加如下依赖:
<dependency>
<groupId>com.baomidougroupId>
<artifactId>mybatis-plus-generatorartifactId>
<version>{版本号}version>
dependency>
在项目的 resources 目录下创建名为 generator.properties 的文件,文件内容如下:
# 数据库连接配置
generator.jdbc.driver=com.mysql.jdbc.Driver
generator.jdbc.url=jdbc:mysql://localhost:3306/{数据库名}?useUnicode=true&characterEncoding=utf-8
generator.jdbc.username={数据库用户名}
generator.jdbc.password={数据库密码}
# 代码生成配置
generator.package.name={生成代码的包名}
generator.module.name={模块名}
generator.table.names={生成代码的表名,多个表名以逗号隔开}
generator.author={作者名}
generator.output.dir={生成代码输出目录}
generator.output.dir
表示生成的代码输出目录,即生成的代码文件将会保存在该目录下。
generator.package.name
表示生成的代码所在的包名,即生成的代码文件将会放在该包下。
在 generator.table.names
中,多个表名应该以英文逗号 ,
隔开,例如:
generator.table.names=user,order,item
这将生成 user
、order
和 item
三张表的代码。
在项目中编写代码生成器类,示例代码如下:
public class CodeGenerator {
public static void main(String[] args) {
AutoGenerator generator = new AutoGenerator();
// 全局配置
GlobalConfig globalConfig = new GlobalConfig();
globalConfig.setOutputDir("D:/code");
globalConfig.setAuthor("mybatis-plus-generator");
globalConfig.setOpen(false);
generator.setGlobalConfig(globalConfig);
// 数据源配置
DataSourceConfig dataSourceConfig = new DataSourceConfig();
dataSourceConfig.setUrl("jdbc:mysql://localhost:3306/{数据库名}?useUnicode=true&characterEncoding=utf-8");
dataSourceConfig.setUsername("{数据库用户名}");
dataSourceConfig.setPassword("{数据库密码}");
dataSourceConfig.setDriverName("com.mysql.jdbc.Driver");
generator.setDataSource(dataSourceConfig);
// 包配置
PackageConfig packageConfig = new PackageConfig();
packageConfig.setParent("{生成代码的包名}");
packageConfig.setModuleName("{模块名}");
generator.setPackageInfo(packageConfig);
// 策略配置
StrategyConfig strategyConfig = new StrategyConfig();
strategyConfig.setInclude("{生成代码的表名,多个表名以逗号隔开}");
generator.setStrategy(strategyConfig);
// 模板配置
TemplateConfig templateConfig = new TemplateConfig();
templateConfig.setXml(null);
generator.setTemplate(templateConfig);
generator.execute();
}
}
运行代码生成器类的 main 方法,即可生成代码到指定输出目录。
在项目的 pom.xml 文件中添加如下依赖:
<dependency>
<groupId>com.baomidougroupId>
<artifactId>mybatis-plus-generatorartifactId>
<version>3.4.0version>
dependency>
<dependency>
<groupId>org.freemarkergroupId>
<artifactId>freemarkerartifactId>
<version>2.3.28version>
<scope>compilescope>
dependency>
<dependency>
<groupId>org.apache.velocitygroupId>
<artifactId>velocity-engine-coreartifactId>
<version>2.0version>
dependency>
在项目的 resources 目录下创建名为 generator.properties 的文件,文件内容如下:
generator.jdbc.driver=com.mysql.cj.jdbc.Driver
generator.jdbc.url=jdbc:mysql://localhost:3306/springboot-regis?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC
generator.jdbc.username=root
generator.jdbc.password=123456
generator.package.name=com.buba
generator.module.name=
generator.table.names=employee,user
generator.author=bilal
generator.output.dir=src/main/java
我没有module所以没写
在项目中编写代码生成器类,示例代码如下:
package com.buba.config;
import com.baomidou.mybatisplus.generator.AutoGenerator;
import com.baomidou.mybatisplus.generator.config.*;
import org.springframework.core.io.support.PropertiesLoaderUtils;
import java.util.Properties;
public class CodeGenerator {
public static void main(String[] args) throws Exception {
// 读取配置文件
Properties props = PropertiesLoaderUtils.loadAllProperties("generator.properties");
// 创建代码生成器
AutoGenerator generator = new AutoGenerator();
// 全局配置
GlobalConfig globalConfig = new GlobalConfig();
globalConfig.setOutputDir(props.getProperty("generator.output.dir"));
globalConfig.setAuthor(props.getProperty("generator.author"));
globalConfig.setOpen(false);
generator.setGlobalConfig(globalConfig);
// 数据源配置
DataSourceConfig dataSourceConfig = new DataSourceConfig();
dataSourceConfig.setUrl(props.getProperty("generator.jdbc.url"));
dataSourceConfig.setUsername(props.getProperty("generator.jdbc.username"));
dataSourceConfig.setPassword(props.getProperty("generator.jdbc.password"));
dataSourceConfig.setDriverName(props.getProperty("generator.jdbc.driver"));
generator.setDataSource(dataSourceConfig);
// 包配置
PackageConfig packageConfig = new PackageConfig();
packageConfig.setParent(props.getProperty("generator.package.name"));
// packageConfig.setModuleName(props.getProperty("generator.module.name"));
generator.setPackageInfo(packageConfig);
// 策略配置
StrategyConfig strategyConfig = new StrategyConfig();
//表名,多个英文逗号分割
strategyConfig.setInclude(props.getProperty("generator.table.names").split(","));
//是否为lombok模型,默认为false
strategyConfig.setEntityLombokModel(true);
//前后端分离时可开启
strategyConfig.setRestControllerStyle(true);
//生成实体时生成生成数据库字段注解
strategyConfig.setEntityTableFieldAnnotationEnable(true);
generator.setStrategy(strategyConfig);
// 模板配置
TemplateConfig templateConfig = new TemplateConfig();
templateConfig.setXml(null);
generator.setTemplate(templateConfig);
generator.execute();
}
}
@SpringBootApplication
@MapperScan("com.buba.mapper")
public class ApplicationRegis {
public static void main(String[] args) {
SpringApplication.run(ApplicationRegis.class, args);
System.out.println("Application started");
}
}
运行代码生成器类的 main 方法,即可生成代码到指定输出目录。
本文介绍了 MyBatisPlusGenerator 的使用方法,希望能够帮助开发人员提高开发效率。如果您在使用过程中遇到问题,可以参考 MyBatisPlusGenerator 的官方文档或者在社区提问。