# RuoYi-Vue-Kingbase
**Repository Path**: ccbclz/ruo-yi-vue-kingbase
## Basic Information
- **Project Name**: RuoYi-Vue-Kingbase
- **Description**: 若依人大金仓版
- **Primary Language**: Unknown
- **License**: MIT
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 7
- **Forks**: 1
- **Created**: 2025-05-13
- **Last Updated**: 2025-08-20
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
RuoYi v3.8.9
基于SpringBoot+Vue前后端分离的Java快速开发框架
### 改造为人大金仓数据库
windows安装人大金仓文档:[windows安装人大金仓数据库保姆级_windows安装kdts-CSDN博客](https://blog.csdn.net/cgk_ALEM/article/details/144104337)
人大金仓数据迁移文档: https://blog.csdn.net/u013294657/article/details/128132670
#### 1.我使用的数据库版本

kingbase 数据库工具包下载地址

#### 2.模块添加删除依赖
##### 2.1 ruoyi-admin模块-pom文件 :
###### 添加MybatisPlus、kingbase依赖(下载方式查看上面的图)
```
com.baomidou
mybatis-plus-boot-starter
3.5.1
com.kingbase8
kingbase8
kingbase8-9.0.0
system
${project.basedir}/lib/kingbase8-9.0.0.jar
```
###### 删除Mysql驱动包
```
```
##### 2.2 ruoyi-common模块-pom文件添加依赖
```
com.baomidou
mybatis-plus-boot-starter
3.5.1
```
#### 3.删除ruoyi-framework模块MyBatisConfig文件
#### 4.使用人大金仓迁移数据工具迁移数据
##### 4.1 特别注意:
先将mysql中的sys_config表名改为sys_con、sys_role表名改为sys_role_info、sys_user表名改为sys_user_info
##### 4.2 数据迁移完成后 修改项目中所有涉及sys_config、sys_role、 sys_user的xml文件
【使用idea中的全局搜索】

将sql中的 sys_config 改为 sys_con
将sql中的 sys_role 改为 sys_role_info
将sql中的 sys_user 改为 sys_user_info
#### 5.修改xml文件中的sysdate()函数改为CURRENT_TIMESTAMP或者CURRENT_TIMESTAMP()
【检查所有xml文件】

#### 6.修改数据库连接
```yml
# 数据源配置
spring:
datasource:
type: com.alibaba.druid.pool.DruidDataSource
druid:
# 主库数据源
driverClassName: com.kingbase8.Driver
master:
url: jdbc:kingbase8://127.0.0.1:54321/ruoyidb?currentSchema=kingbase-ruoyi&allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&rewriteBatchedStatements=true
username: xyc
password: 123456
# 从库数据源
slave:
# 从数据源开关/默认关闭
enabled: false
url:
username:
password:
# 初始连接数
initialSize: 5
# 最小连接池数量
minIdle: 10
# 最大连接池数量
maxActive: 20
# 配置获取连接等待超时的时间
maxWait: 60000
# 配置连接超时时间
connectTimeout: 30000
# 配置网络超时时间
socketTimeout: 60000
# 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
timeBetweenEvictionRunsMillis: 60000
# 配置一个连接在池中最小生存的时间,单位是毫秒
minEvictableIdleTimeMillis: 300000
# 配置一个连接在池中最大生存的时间,单位是毫秒
maxEvictableIdleTimeMillis: 900000
# 配置检测连接是否有效
validationQuery: SELECT 1 FROM DUAL
testWhileIdle: true
testOnBorrow: false
testOnReturn: false
webStatFilter:
enabled: true
statViewServlet:
enabled: true
# 设置白名单,不填则允许所有访问
allow:
url-pattern: /druid/*
# 控制台管理用户名和密码
login-username: ruoyi
login-password: 123456
filter:
stat:
enabled: true
# 慢SQL记录
log-slow-sql: true
slow-sql-millis: 1000
merge-sql: true
wall:
config:
multi-statement-allow: true
```
#### 7.将kingbase依赖包使用maven命令打包到自己本地的maven仓库,解决项目本地开发没问题,打包发布运行时没有kingbase依赖
```
mvn install:install-file -Dfile=kingbase8-9.0.0.jar -DgroupId=com.kingbase8 -DartifactId=kingbase8 -Dversion=9.0.0 -Dpackaging=jar
```

使用cmd打开窗口,再使用 java -jar ruoyi-admin.jar 命令启动jar包,启动成功。

本地前端访问接口也正常。

#### 8.使用腾讯元宝改造代码生成模块适配kingbase,替换下面文件中的sql语句
##### 8.1GenTableColumnMapper文件
```
```
##### 8.2GenTableMapper文件
```
```
```
```
```
```
```
```
##### 8.3 替换sql.vm文件所有内容
```
WITH parent_menu AS (
INSERT INTO sys_menu (
menu_name, parent_id, order_num, path, component, is_frame, is_cache,
menu_type, visible, status, perms, icon, create_by, create_time,
update_by, update_time, remark
)
VALUES (
'${functionName}',
${parentMenuId},
'1',
'${businessName}',
'${moduleName}/${businessName}/index',
1,
0,
'C',
'0',
'0',
'${permissionPrefix}:list',
'#',
'admin',
CURRENT_TIMESTAMP,
NULL,
NULL,
'${functionName}菜单'
)
RETURNING menu_id
)
INSERT INTO sys_menu (
menu_name, parent_id, order_num, path, component, is_frame, is_cache,
menu_type, visible, status, perms, icon, create_by, create_time,
update_by, update_time, remark
)
SELECT
col1, col2, col3, col4, col5, col6, col7, col8, col9, col10, col11,
'#', 'admin', CURRENT_TIMESTAMP, NULL, NULL, ''
FROM (
VALUES
('${functionName}查询', (SELECT menu_id FROM parent_menu), '1', '#', '', 1, 0, 'F', '0', '0', '${permissionPrefix}:query'),
('${functionName}新增', (SELECT menu_id FROM parent_menu), '2', '#', '', 1, 0, 'F', '0', '0', '${permissionPrefix}:add'),
('${functionName}修改', (SELECT menu_id FROM parent_menu), '3', '#', '', 1, 0, 'F', '0', '0', '${permissionPrefix}:edit'),
('${functionName}删除', (SELECT menu_id FROM parent_menu), '4', '#', '', 1, 0, 'F', '0', '0', '${permissionPrefix}:remove'),
('${functionName}导出', (SELECT menu_id FROM parent_menu), '5', '#', '', 1, 0, 'F', '0', '0', '${permissionPrefix}:export')
) AS menu_data(
col1, col2, col3, col4, col5, col6, col7, col8, col9, col10, col11
);
```
#### 9.如果发现问题gitee上我回复消息不及时,可以发送到2935230180@qq.com邮箱