1 dependencies
dependencies {
implementation("org.mybatis:mybatis:3.5.15")
implementation("mysql:mysql-connector-java:8.0.33")
// MyBatis Generator 核心
implementation("org.mybatis.generator:mybatis-generator-core:1.4.2")
}
2 mbg-config.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE generatorConfiguration
PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
"http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
<generatorConfiguration>
<!-- 数据库驱动 JAR 包的路径。
由于我们在 Gradle 中通过配置管理依赖,这里通常可以省略,
或者使用 classPathEntry 指定,但 Gradle Task 会处理 classpath,所以通常不需要。
-->
<!-- <classPathEntry location="/path/to/your/mysql-connector-java.jar"/> -->
<context id="DB2Tables" targetRuntime="MyBatis3">
<!-- 可选:生成 toString(), hashCode(), equals() 方法 -->
<plugin type="org.mybatis.generator.plugins.ToStringPlugin" />
<!-- 数据库连接信息 -->
<!-- TODO: 请确认数据库连接信息是否正确 -->
<jdbcConnection
driverClass="com.mysql.cj.jdbc.Driver"
connectionURL="jdbc:mysql://localhost:3306/nacos_devtest"
userId="nacos"
password="nacos">
<!-- 针对 MySQL 8.0+ 需要设置时区等参数 -->
<property name="serverTimezone" value="UTC"/>
</jdbcConnection>
<!-- Java 模型(实体类)生成配置 -->
<javaModelGenerator targetPackage="ca.base.core.model" targetProject="src/main/java">
<property name="enableSubPackages" value="true"/>
<property name="trimStrings" value="true"/>
</javaModelGenerator>
<!-- SQL Map XML 文件生成配置 -->
<sqlMapGenerator targetPackage="mapper" targetProject="src/main/resources">
<property name="enableSubPackages" value="true"/>
</sqlMapGenerator>
<!-- Mapper 接口生成配置 -->
<javaClientGenerator type="XMLMAPPER" targetPackage="ca.base.core.mapper" targetProject="src/main/java">
<property name="enableSubPackages" value="true"/>
</javaClientGenerator>
<!-- 指定要生成代码的表 -->
<!-- tableName:表名,domainObjectName:对应的实体类名 -->
<table tableName="base_chain" domainObjectName="BaseChain"
enableCountByExample="true" enableUpdateByExample="false"
enableDeleteByExample="false" enableSelectByExample="false"
selectByExampleQueryId="false"/>
<!-- <table tableName="base_chain" domainObjectName="BaseChain"/>-->
<!-- 可以配置多个 table --> </context>
</generatorConfiguration>
3 Main
package com.example.mbg;
import org.mybatis.generator.api.MyBatisGenerator;
import org.mybatis.generator.config.Configuration;
import org.mybatis.generator.config.xml.ConfigurationParser;
import org.mybatis.generator.internal.DefaultShellCallback;
import java.io.File;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;
public class GeneratorMain {
public static void main(String[] args) {
try {
List<String> warnings = new ArrayList<>();
boolean overwrite = true;
URL resource = GeneratorMain.class.getClassLoader().getResource("mbg-config.xml");
File configFile = new File(resource.toURI());
ConfigurationParser cp = new ConfigurationParser(warnings);
Configuration config = cp.parseConfiguration(configFile);
DefaultShellCallback callback = new DefaultShellCallback(overwrite);
MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings);
myBatisGenerator.generate(null);
System.out.println("✅ MBG 代码生成完成!");
warnings.forEach(System.out::println);
} catch (Exception e) {
e.printStackTrace();
}
}
}
targetProject配置的路径是项目的根路径,可能需要手动确保路径存在