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();
    }
}
3、配置说明
数据源配置:
  url:人大金仓数据库的连接 URL,格式为 jdbc:kingbase8://host:port/database。
  driverName:人大金仓的驱动类为 com.kingbase8.Driver。
  username 和 password:数据库的用户名和密码。
 
包配置:
  parent:生成的代码的父包名。
  entity、mapper、service 等:各层代码的包名。
 
策略配置:
  NamingStrategy.underline_to_camel:将数据库表名和字段名的下划线命名转换为驼峰命名。
  include:指定需要生成代码的表名。

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或其他支持的模板引擎。

 

posted @ 2025-02-17 17:41  IT王师傅  阅读(1280)  评论(0)    收藏  举报