Java连接人大金仓数据库

前言:国产化需要,要求用人大金仓的数据库,之前用的是MybatisPlus的ORM框架,查了下是支持的,可以平滑过渡。

1、迁移数据库表,如果是MySQL的脚本,要注意是不兼容的,尤其是int、datetime字段不支持设置长度,不支持关键字,下面是一个可在金仓执行的sql脚本:

CREATE TABLE sys_user_info (
  id bigint NOT NULL AUTO_INCREMENT,
  create_time datetime NOT NULL,
  update_time datetime DEFAULT NULL,
  is_valid tinyint NOT NULL,
  user_code varchar(32) NOT NULL,
  user_pwd varchar(64) DEFAULT NULL,
  name varchar(64) NOT NULL,
  avatar varchar(127) DEFAULT NULL,
  phone varchar(20) DEFAULT NULL,
  email varchar(20) DEFAULT NULL,
  remark varchar(256) DEFAULT NULL,
  expire_date datetime DEFAULT NULL
);
ALTER TABLE sys_user_info ADD CONSTRAINT con_tejian_sys_user_info_constraint_1 PRIMARY KEY (id) ENABLE VALIDATE;

2、插入数据

insert into sys_user_info(id,create_time,update_time,is_valid,user_code,user_pwd,name,avatar,phone,email,remark,expire_date) values (1,'2021-05-06 16:16:56.000',NULL,1,'admin','******','系统管理员',NULL,NULL,NULL,NULL,NULL);

3、准备金仓的jar,官网有提供,放至 "/src/main/resources/lib"

4、修改pom.xml

<!--Kingbase-->
<dependency>
	<groupId>com.kingbase8</groupId>
	<artifactId>kingbase8</artifactId>
	<version>9.0.0</version>
	<scope>system</scope>
	<systemPath>${project.basedir}/src/main/resources/lib/kingbase8-9.0.0.jar</systemPath>
</dependency>

5、修改application.yml

datasource:
kingbase:
  type: com.alibaba.druid.pool.DruidDataSource
  driverClassName: com.kingbase8.Driver
  url: jdbc:kingbase8://192.168.19.106:8024/databasename
  username: system
  password: 16899168

6、实体类

7、Mapper类

8、Controller或Service直接使用

9、程序正常运行

 

细节注意:人大金仓数据库是基于PostgreSQL,有模式的概念,最好设置一下默认模式,不然绑定TableName需要带上模式名,脚本如下:

alter database 数据库名 set search_path = "$user", public, 模式名;
select sys_reload_conf();

总结:
使用MyBatisPlus可以很方便的更换数据库,在业务代码中尽量用lambda来操作对象,少写sql,可以避免sql不兼容的情况。

posted on   IT王师傅  阅读(76)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 什么是nginx的强缓存和协商缓存
· 一文读懂知识蒸馏
· Manus爆火,是硬核还是营销?

导航

统计

点击右上角即可分享
微信分享提示