MyBatis-Plus连接人大金仓数据库生成代码
在使用 MyBatis-Plus 进行代码生成时,针对人大金仓数据库(KingbaseES),需要进行一些特殊的配置,因为人大金仓数据库是基于 PostgreSQL 的,因此在代码生成时需要适配其特定的驱动和配置。以下是详细的步骤和代码示例:
1、添加依赖
在 pom.xml 中添加 MyBatis-Plus 和人大金仓数据库驱动的依赖:
<dependencies>
<!-- MyBatis-Plus 核心依赖 -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.5.3.1</version>
</dependency>
<!-- 人大金仓数据库驱动 -->
<dependency>
<groupId>com.kingbase</groupId>
<artifactId>kingbase8</artifactId>
<version>8.6.0</version>
</dependency>
<!-- MyBatis-Plus 代码生成器依赖 -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>3.5.3.1</version>
</dependency>
<!-- 模板引擎依赖(默认使用 Velocity) -->
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity-engine-core</artifactId>
<version>2.3</version>
</dependency>
</dependencies>
2. 配置代码生成器
创建一个 Java 类配置 MyBatis-Plus 的代码生成器:
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 generator = new AutoGenerator();
// 全局配置
GlobalConfig globalConfig = new GlobalConfig();
globalConfig.setOutputDir(System.getProperty("user.dir") + "/src/main/java"); // 输出目录
globalConfig.setAuthor("YourName"); // 作者
globalConfig.setOpen(false); // 生成后是否打开文件夹
globalConfig.setFileOverride(true); // 是否覆盖已有文件
globalConfig.setMapperName("%sMapper"); // Mapper 文件命名规则
globalConfig.setServiceName("%sService"); // Service 文件命名规则
generator.setGlobalConfig(globalConfig);
// 数据源配置
DataSourceConfig dataSourceConfig = new DataSourceConfig();
dataSourceConfig.setUrl("jdbc:kingbase8://localhost:54321/your_database"); // 人大金仓数据库连接 URL
dataSourceConfig.setDriverName("com.kingbase8.Driver"); // 驱动类
dataSourceConfig.setUsername("your_username"); // 用户名
dataSourceConfig.setPassword("your_password"); // 密码
dataSourceConfig.setSchemaName("public");// 数据源模式,PostgreSQL一定要配置这个,否则不能生成代码
generator.setDataSource(dataSourceConfig);
// 包配置
PackageConfig packageConfig = new PackageConfig();
packageConfig.setParent("com.example"); // 父包名
packageConfig.setEntity("entity"); // 实体类包名
packageConfig.setMapper("mapper"); // Mapper 包名
packageConfig.setService("service"); // Service 包名
packageConfig.setServiceImpl("service.impl"); // Service 实现类包名
packageConfig.setController("controller"); // Controller 包名
generator.setPackageInfo(packageConfig);
// 策略配置
StrategyConfig strategyConfig = new StrategyConfig();
strategyConfig.setNaming(NamingStrategy.underline_to_camel); // 表名转驼峰命名
strategyConfig.setColumnNaming(NamingStrategy.underline_to_camel); // 列名转驼峰命名
strategyConfig.setEntityLombokModel(true); // 使用 Lombok
strategyConfig.setRestControllerStyle(true); // 生成 RestController
strategyConfig.setInclude("table1", "table2"); // 需要生成的表名
generator.setStrategy(strategyConfig);
// 执行生成
generator.execute();
}
}
4、运行代码生成器
直接运行 CodeGenerator 类的 main 方法,代码生成器会根据配置生成对应的实体类、Mapper 接口、Service 接口及实现类、Controller 等文件。

关键点解释
全局配置 (GlobalConfig):
outputDir: 设置生成代码的输出目录。
author: 设置作者名称。
open: 是否在生成后自动打开输出目录。
fileOverride: 是否覆盖已有的同名文件。
swagger2: 是否生成Swagger2注解。
数据源配置 (DataSourceConfig):
url: 设置连接Kingbase8数据库的URL。注意替换为你自己的数据库地址、端口和数据库名。
driverName: 设置Kingbase8的JDBC驱动类名。
username: 数据库用户名。
password: 数据库密码。
包配置 (PackageConfig):
parent: 设置所有生成代码的基础包名。
entity, mapper, service, serviceImpl, controller: 分别指定各个模块的子包名。
策略配置 (StrategyConfig):
naming: 设置表名生成策略(驼峰命名法或其他)。
columnNaming: 设置字段名生成策略。
entityLombokModel: 是否使用Lombok简化实体类代码。
restControllerStyle: 是否生成REST风格的控制器。
include: 指定需要生成代码的表名,支持通配符。
模板引擎:这里选择了Freemarker作为模板引擎。也可以选择Velocity或其他支持的模板引擎。
浙公网安备 33010602011771号