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不兼容的情况。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 什么是nginx的强缓存和协商缓存
· 一文读懂知识蒸馏
· Manus爆火,是硬核还是营销?