简介

        对于甲方业务特殊要求,使用国产化数据库人大金仓,作为项目主要存储。这里以若依开源框架整合人大金仓为例,演示如何在真实项目中引入人大金仓。本教程面向小白,是给刚接触的萌新了解和参考的,请大佬轻点喷.....

一、若依开源框架

官网:介绍 | RuoYi

若依框架 lua脚本实现接口防重和ip 若依框架使用_mybatis

http://doc.ruoyi.vip/ruoyi-vue/在这里呢ruoyi框架有很多版本,这里主要以分离版作为介绍

下载地址:

RuoYi-Vue: 🎉 基于SpringBoot,Spring Security,JWT,Vue & Element 的前后端分离权限管理系统,同时提供了 Vue3 的版本 (gitee.com)

二、人大金仓介绍

北京人大金仓信息技术股份有限公司(以下简称“人大金仓”)成立于1999年,是成立最早的拥有自主知识产权的国产数据库企业,也是中国电子科技集团(简称“CETC”)成员企业。作为数据库领域国家队,人大金仓走学科自主开创、产品自主研发、人才自主培养之路,已在60多个行业的关键应用替换了国外主流数据库,底层实际是postgreSQL,与Oracle常用功能100%兼容,与MySQL、SQLServer常用功能90%兼容。作为一款具有独立自主知识产权企业级EDI工具,知行之桥EDI系统支持连接人大金仓数据库,为用户解决“国产替代”的后顾之忧。

三、整合步骤

3.1 若依框架下载与使用

①直接下载

若依框架 lua脚本实现接口防重和ip 若依框架使用_java_02

若依框架 lua脚本实现接口防重和ip 若依框架使用_java_03

点击(克隆/下载),并在弹出窗口中选择下载zip,就可直接下载项目并解压到本地,并在idea中打开项目

②通过idea直接拉取,在文件➡新建➡来自版本控制的项目

若依框架 lua脚本实现接口防重和ip 若依框架使用_若依框架 lua脚本实现接口防重和ip_04

在弹出窗口粘贴项目地址

若依框架 lua脚本实现接口防重和ip 若依框架使用_若依框架 lua脚本实现接口防重和ip_05

若依框架 lua脚本实现接口防重和ip 若依框架使用_maven_06

最后,一个完整若依项目就准备完成了。

若依框架 lua脚本实现接口防重和ip 若依框架使用_若依框架 lua脚本实现接口防重和ip_07

但是要记得运行相关的sql文件以及更改配置文件,不然项目运行不起来噢

若依框架 lua脚本实现接口防重和ip 若依框架使用_java_08

若依框架 lua脚本实现接口防重和ip 若依框架使用_java_09

这是运行好后,大致数据库的概况。如果不知道怎么运行sql文件的同学可以百度下相关教程或者留言咨询

若依框架 lua脚本实现接口防重和ip 若依框架使用_spring_10

这是配置文件的,但是目前这个配置文件还没有修改上我们的人大金仓数据库,后面会讲解;但是运行到这你的若依项目就已经部署完成了,但是要记得电脑要配好redis,不然没有缓存也是无法正常运行的。

3.2人大金仓下载与安装

下载地址

通过快速筛选,找到我们所需要的版本

若依框架 lua脚本实现接口防重和ip 若依框架使用_java_11

还要下载授权文件,这里要根据你的实际需求下载

若依框架 lua脚本实现接口防重和ip 若依框架使用_spring_12

这里详细的安装我们直接参考别人的文章;

Kingbase人大金仓数据库安装_金仓数据库离线安装-CSDN博客

这里我们还要去下载驱动文件,注意这是很重要的一步!

若依框架 lua脚本实现接口防重和ip 若依框架使用_java_13

下载解压后,将圈中文件放入maven仓库中

若依框架 lua脚本实现接口防重和ip 若依框架使用_mybatis_14

按住win+R输入cmd
运行

mvn install:install-file -DgroupId=com.kingbase8 -DartifactId=kingbase8 -Dversion=8.6.0 -Dfile=(自己jar包的路径)\Kingbase8-8.6.0.jar -Dpackaging=jar -DgeneratePom=true

若依框架 lua脚本实现接口防重和ip 若依框架使用_spring_15

如果出现不支持mvn命令,请检查你的maven配置情况。这里也为大家准备了别的博主的maven安装与配置教程,

Maven安装和配置详细教程-CSDN博客

若依框架 lua脚本实现接口防重和ip 若依框架使用_spring_16

替换成

<dependency>
<groupId>com.kingbase8</groupId>
<artifactId>kingbase8</artifactId>
<version>8.6.0</version>
</dependency>

当然这里我的项目组中有些同学发现,他们发现有些在自己写入后,maven没法正常加载依赖,后面排查后发现,他们自己写入的maven本地仓库时使用的是别的博主的语句mvn;导致包名改变了,也有一些同学不知从哪里的云仓库直接拉取到了kingbase的驱动........所以方式不止一种大家可以灵活变通。

修改配置文件

也就是上述我们说到替换人大金仓数据库的配置文件

路径ruoyi-admin/src/main/resources/application-druid.yml

# 主库数据源
            master:
                url: jdbc:kingbase8://127.0.0.1:54321/test
                username: 用户
                password: 密码

同时记得改下驱动噢

driverClassName: com.kingbase8.Driver

若依框架 lua脚本实现接口防重和ip 若依框架使用_mybatis_17

到这里我们就基本完成我们的前期工作

3.3数据库迁移

这里是别的博主的引用教程

人大金仓(Kingbase)数据库迁移——KDMS工具(人大金仓数据库迁移工具迁移失败可使用此方法)-CSDN博客

这里我个人提几点,该篇文章的前面,需要你去金仓社区去下载,但是我们在安装的期间,其实我们已经安装了相关的工具,你只需要在开始中运行,并且按照接下来的教程去操作就可以了。

但是注意,部分就是表的主键等等可能会丢失,在开发中一定要仔细检查

迁移完成后,我们要注意有部分表已经发生了修改

如下是我项目后期的一个表结构作为演示,同时可以跟大家分享的一个小技巧,人大金仓的底层是从postgreSQL改进,所以我们依然可以用navicat进行数据库管理,如果用官方管理工具不习惯的话可以尝试

若依框架 lua脚本实现接口防重和ip 若依框架使用_java_18

因为sys—config、sys_user这两张表是与人大金仓的一些系统表有一定冲突的所以,我们要修改下表名并且要将若依中的相关mapper.xml也进行修改;

这里我们采用更改为con和users具体怎么操作可以看个人,更改完表名后进入到idea

全文件搜索sys_user与sys_config,这一步主要是为了是sql语句与数据库一致,但是要注意不要改错了一些别的表的搜索语句字段

若依框架 lua脚本实现接口防重和ip 若依框架使用_若依框架 lua脚本实现接口防重和ip_19

四、总结

        对于若依整合人大金仓中几大步骤,数据库的准备、迁移数据到人大金仓、驱动文件、更改配置文件、更改sql语句。目前项目开发中已经完全使用了,但就目前文章中的迁移工作还不足以让整个系统完全正常的运行,在开发的过程之中,我们发现了各种各样奇奇怪怪的bug出现了,这个原因主要是因为若依的前后端分离版本框架,整体而言都是基于MySQL的开发,虽然postgreSQL与人大金仓跟MySQL在语法上80%以上都是相似的,但是内置函数、系统表名、标准等仍存在许多差别,这个在数据迁移之中我们也能够感受到了