# 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 官方默认实现 MySQL、Derby ,其他类型数据库接入需要参考下文自己扩展。

## 自定义人大金仓插件
### 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方法

>该方法用于修改配置操作,默认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
```