# nacos_database_kingbase_extends **Repository Path**: wei-yongpe/nacos_database_kingbase_extends ## Basic Information - **Project Name**: nacos_database_kingbase_extends - **Description**: 人大金仓nacos扩展插件 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 0 - **Created**: 2024-10-29 - **Last Updated**: 2025-08-08 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README Nacos 从 2.2.0 版本开始,可通过 SPI 机制注入多数据源实现插件,并在引入对应数据源实现后,便可在 Nacos 启动时通过读取 application.properties 配置文件中 spring.datasource.platform 配置项选择加载对应多数据源插件. ![Nacos 插件化实现 ](https://minio.pigx.top/oss/202212/1671179590.jpg) > Nacos 官方默认实现 MySQL、Derby ,其他类型数据库接入需要参考下文自己扩展。 ![](https://minio.pigx.top/oss/202212/1671180565.png) ## 自定义人大金仓插件 ### 1. 添加 人大金仓 插件 > 依赖已上传 maven 中央仓库,请勿使用阿里云代理 | NACOS 版本 | 插件版本 | 是否支持 | |---------------|-------|------| | 2.2.0 - 2.3.0 | 0.0.2 | 是 | | 2.3.1 - 2.3.2 | 0.0.3 | 否 | ```xml com.watcloud.plugin nacos-datasource-plugin-kingbase 0.0.2 cn.com.kingbase kingbase8 8.6.0 ``` ### 2. 导入 nacos 人大金仓 8 数据库脚本 - 特殊设置: kingbase.conf , '' null 的转换 ```shell ora_input_emptystr_isnull = off ``` - 针对金仓9版本 需要修改源码ExternalConfigInfoPersistServiceImpl 类里的 insertOrUpdate方法 ![img.png](img.png) >该方法用于修改配置操作,默认CONFIG_INFO有索引(data_id,group_id,tenant_id),修改会索引冲突 但是不会抛出DuplicateKeyException这个异常 数据库脚本 [nacos-kingbase.sql](sql%2Fnacos-kingbase.sql) ### 3. 配置 人大金仓 数据源链接信息 ```yaml db: num: 1 url: 0: jdbc:kingbase8://192.168.152.151:54321/TEST?currentSchema=nacos_config user: SYSTEM password: 123456 pool: config: driver-class-name: com.kingbase8.Driver ``` ```properties db.num=1 db.url.0=jdbc:kingbase8://192.168.152.151:54321/TEST?currentSchema=nacos_config db.user.0=SYSTEM db.password.0=123456 # 注意添加配置需要 db.pool.config.driverClassName=com.kingbase8.Driver ``` ### 4. 指定 nacos 数据源平台 ```yaml spring: datasource: platform: kingbase8 ``` ```properties spring.datasource.platform=kingbase8 spring.sql.init.platform=kingbase8 ```