一、人大金仓数据库官网下载地址

https://www.kingbase.com.cn/rjcxxz/index.htm
安装时一定要设置数据库大小写不敏感,否则有些数据表会识别不到。

二、导入数据库驱动jar包到本地Maven库

人大金仓8.6的版本使用的驱动jar包是kingbase8.6.0.jar,maven仓库里并没有这两个jar包,需要手动下载并导入到本地maven仓库。

驱动Jar包下载地址:

链接:https://pan.baidu.com/s/1P09k-PABrlZZtFYCXm6jWg
提取码:vars

将jar包到入到本地maven库:

mvn install:install-file -DgroupId=com.kingbase8 -DartifactId=kingbase8 -Dversion=8.6.0 -Dfile=C:\Users\Orion\Desktop\1S\kingbase8.6.0.jar -Dpackaging=jar

如果使用命令行导入jar包失败,可以尝试使用IDEA将jar导入到本地maven仓库,具体步骤如下:

  • 用IDEA打开一个Jeecg Boot项目,先点击右侧【Maven】按钮,然后在弹出的Maven面板点击【Execute Maven Goal】选项。

在这里插入图片描述

  • 在弹出的窗口中输入刚才的命令,点击回车。

    mvn install:install-file -DgroupId=com.kingbase8 -DartifactId=kingbase8 -Dversion=8.6.0 -Dfile=C:\Users\Orion\Desktop\1S\kingbase8.6.0.jar -Dpackaging=jar
    

    在这里插入图片描述

  • jar包导入成功控制台会输出以下内容:

在这里插入图片描述

三、在项目中引入驱动jar包

修改项目里的jeecg-boot-base\jeecg-boot-base-core\pom.xml文件,引入人大金仓数据库驱动:

<!-- 人大金仓数据库驱动 -->
<dependency>
  <groupId>com.kingbase8</groupId>
  <artifactId>kingbase8</artifactId>
  <version>8.6.0</version>
</dependency>

修改application-devyml配置文件
将dataSource删除掉并新增下面语句

  #  autoconfigure:
  #    exclude: com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure
  datasource:
    type: com.alibaba.druid.pool.DruidDataSource
    druid:
      driverClassName: com.kingbase8.Driver
      url: jdbc:kingbase8://192.168.43.135:54321/txb?zeroDateTimeBehavior=convertToNull&useUnicode=true&characterEncoding=utf-8
      username: system
      password: 123456

如下图所示:

在这里插入图片描述

四、常见问题
  • Jeecg Boot和KingbaseES数据库系统表名相同查询不到的问题

例如Jeecg Boot和KingbaseES中的用户表"sys_user"重名,不采取措施的情况下是会优先查找到KingbaseES中的"sys_user"用户表的。

解决方法1:

用system用户登录数据库,执行以下sql语句:

-- 设置system用户模式访问顺序
alter system set search_path = temp,PUBLIC,"$USER",SYS_CATALOG;
-- 设置mydb数据库模式访问顺序
alter database txb set search_path to temp,PUBLIC,"$USER",SYS_CATALOG;
-- 使配置生效
select sys_reload_conf(); 

解决方法2:

修改人大金仓数据库配置文件kingbase.conf,设置search_path模式搜索路径 :

1.编辑配置文件

vim /opt/Kingbase/ES/V8/kingbase.conf

2.在末尾添加搜索路径,schema_name为用户想优先访问的"模式名"

search_path = '"$user",schema_name,sys_catalog'

3.重启数据库生效

/opt/Kingbase/ES/V8/Server/bin$ ./sys_ctl -D /opt/Kingbase/ES/V8/data restart

注意:最好不要用system用户连接数据库,不然还是有可能会出现优先查询Kingbase的sys_user表。

参考资料:

https://blog.csdn.net/xiaoxiangzi520/article/details/117961513
https://bbs.kingbase.com.cn/wenda/question/238.html

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐