最近公司要将系统进行国产化数据库人大金仓的适配,在适配过程中发现了许多问题,在此记录
1、引入依赖
根据安装的数据库版本决定需要引入对应的驱动版本和数据库方言,我们安装的是kingbaseESV8版本,所以我们引入8.2.0的驱动,我们是将jar包推到私服上的,所以直接通过依赖引入

     <dependency><groupId>com.esen.jdbc</groupId><artifactId>kingbasejdbc4</artifactId><version>8.2.0</version></dependency><dependency><groupId>org.hibernate.dialect</groupId><artifactId>KingbaseDialect</artifactId><version>1.0</version></dependency>

https://pan.baidu.com/s/1PLsbXPoDXzji8ToEgD_eNA
提取码:qwer
2、配置数据库连接信息和数据库方言

#KINGBASE
orm.database=
orm.databasePlatform=org.hibernate.dialect.KingbaseDialect# 人大金仓
spring.datasource.driverClassName=com.kingbase8.Driver
spring.datasource.url=jdbc:kingbase8://localhost:54321/TEST
spring.datasource.username=SYSTEM
spring.datasource.password=123456

3、自动建表问题
引用的Hibernate5.6.9版本,自动建表时会进行元数据的提取


默认为null,而KingbaseDialect中有具体返回,所以会执行后续的元数据提取操作



提取元数是从设置的QuerySequencesString中设置的sql执行查询后从结果中提取sequence_name,sequence_catalog,sequence_schema等信息,如果为空,则会抛出异常:The column name sequence_catalog was not found in this ResultSet

public Iterable<SequenceInformation> extractMetadata(ExtractionContext extractionContext) throws SQLException {String lookupSql = extractionContext.getJdbcEnvironment().getDialect().getQuerySequencesString();return lookupSql == null ? SequenceInformationExtractorNoOpImpl.INSTANCE.extractMetadata(extractionContext) : (Iterable)extractionContext.getQueryResults(lookupSql, (Object[])null, (resultSet) -> {IdentifierHelper identifierHelper = extractionContext.getJdbcEnvironment().getIdentifierHelper();ArrayList sequenceInformationList = new ArrayList();while(resultSet.next()) {sequenceInformationList.add(new SequenceInformationImpl(new QualifiedSequenceName(identifierHelper.toIdentifier(this.resultSetCatalogName(resultSet)), identifierHelper.toIdentifier(this.resultSetSchemaName(resultSet)), identifierHelper.toIdentifier(this.resultSetSequenceName(resultSet))), this.resultSetStartValueSize(resultSet), this.resultSetMinValue(resultSet), this.resultSetMaxValue(resultSet), this.resultSetIncrementValue(resultSet)));}return sequenceInformationList;});}protected String sequenceNameColumn() {return "sequence_name";}protected String sequenceCatalogColumn() {return "sequence_catalog";}protected String sequenceSchemaColumn() {return "sequence_schema";}protected String sequenceStartValueColumn() {return "start_value";}protected String sequenceMinValueColumn() {return "minimum_value";}protected String sequenceMaxValueColumn() {return "maximum_value";}protected String sequenceIncrementColumn() {return "increment";}


解决方案
1、降低Hibernate版本,5.1.0版本执行提取元数据操作时,是加入空的Identifier对象,所以不会报此错误。
2、重写方言的getQuerySequencesString方法,直接返回null,因为通过对比发现mysql的方言并没有重写此方法,所以认为此处返回null,然后不进行元数据提取不会产生影响,经测试能成功建表

public class KunKingbaseDialect extends KingbaseDialect {public KunKingbaseDialect() {super();}@Overridepublic String getQuerySequencesString() {return null;}
}

SpringBoot兼容人大金仓数据库相关推荐

  1. spring-boot 连接人大金仓

    spring-boot 连接人大金仓数据库 首先下载人大金仓的数据库 安装好 过程略过 在安装好的数据库文件里面找到jdbc的jar包 将jar包加入本地maven库 mvn install:inst ...

  2. jpa 人大金仓数据库方言_兼容认证 | 人大金仓数据库管理系统完成与浪潮产品兼容认证...

    日前,人大金仓数据库管理系统KingbaseES V7.V8完成与浪潮GS Cloud数字化管理平台.iGIX数字化能力平台完成兼容认证. 测试结果显示:双方产品完全兼容,其功能.性能和兼容性等各方面 ...

  3. 兼容认证 | 人大金仓数据库管理系统完成与浪潮产品兼容认证

    日前,人大金仓数据库管理系统KingbaseES V7.V8完成与浪潮GS Cloud数字化管理平台.iGIX数字化能力平台完成兼容认证. 测试结果显示:双方产品完全兼容,其功能.性能和兼容性等各方面 ...

  4. 数据库专题 数据库适配问题--人大金仓数据库适配问题总结(kingbase8)

    人大金仓数据库链接配置 这里以springBoot配置文件演示: spring.datasource.driver-class-name=com.kingbase8.Driver spring.dat ...

  5. 人大金仓数据库安装与配置

    安装包下载地址 访问人大金仓官网: 人大金仓数据库安装包下载 Licence授权文件下载 Licence授权文件下载 CentOS7.9人大金仓数据库部署 环境准备 1. 创建用户 useradd k ...

  6. 要闻 | 人大金仓数据库管理系统KingbaseES V8入驻华为云严选商城

    号外号外 可以网上下单购买金仓产品啦 近日,人大金仓数据库管理系统KingbaseES V8入驻华为云严选商城,金仓产品正式开启线上销售新模式.客户在产生购买意向后,人大金仓将根据所属行业.地区等信息 ...

  7. 国产化人大金仓数据库转库工具:oracle12c数据库转kingbase8.6人大金仓数据库实例演示

    oracle12c数据库转人大金仓数据库实例演示 第一章:数据准备 ① 人大金仓建库建用户 ② 人大金仓授权表空间 ③ 人大金仓创建 schema 表 第二章:转库演示 ① 转库工具准备 ② 创建源库 ...

  8. 人大金仓数据库sql语句_人大金仓数据库总结(SQL和JDBC)

    人大金仓作为一款国产数据库,使用的人数和相关资料都比较少. 最近使用人大金仓数据库,做了个简单的SQL和java jdbc的测试,希望能够供大家参考. 1.SQL语句 创建表: CREATE TABL ...

  9. nacos 适配达梦、人大金仓数据库

    文章目录 一.准备工作 1. 阅读官网文档 2. 下载源码,按官网更详细 3. 下载达梦.人大金仓数据库驱动 二.修改nacos源码 2.1. 引入驱动依赖 2.2. 引用数据库 2.3. 修改配置 ...

  10. 人大金仓数据库的使用心得

    人大金仓作为一款国产数据库,为国争光确实做到了,但是国内使用的人数还是比较少的,能查到的相关资料比较少. 在此,我将最近使用人大金仓的一些心得总结一下,希望能够帮助到一些人: 1.人大金仓数据库的跨库 ...

最新文章

  1. linux下mv命令移动目录的二种情况
  2. Java设计模式(二十三):访问者设计模式
  3. python函数的高级用法
  4. 同步现象 心理学_非心理专业背景的人,如何成为心理学家或心理咨询师?
  5. Apache下有效防止盗链仿下载的解决办法
  6. Maze(BFS处理)
  7. Linux用户管理详解大结局(下)
  8. AndroidStudio安卓原生开发_UI高级_RecyclerView_循环复用控件_代替ListView_GridView---Android原生开发工作笔记121
  9. 为什么微信、Facebook都在做企业通信软件
  10. 电子证件照尺寸怎样裁剪?怎么把照片裁剪成2寸?
  11. 免费版卡巴斯基 (AOL)
  12. python学习笔记_week19
  13. Unity 3D委托entrust
  14. java十进制转二进制(输入一个十进制数将其转换成二进制)
  15. 看不起java_程序员铁律,用Tab的瞧不起用Space键的,用C语言的瞧不起用Java的!...
  16. 力荐 50 个最实用的免费机器学习数据集
  17. 再寄小读者之数学篇[2014.01.01-2014.06.30]
  18. 通过文件url地址获取base64;通过图片url地址获取base64;js获取文件的base64
  19. 多智能体仿真环境NetLogo介绍之导入外部数据
  20. 企业远程高清会议平台视频会议系统在手机端使用的必备要求有哪些?

热门文章

  1. 佳博GP1124T的安装向导
  2. 使用pdfobject.js实现在线浏览PDF--前端显示PDF
  3. python免费教程发布页
  4. 【AI应用】海康威视iVMS-4200软件安装
  5. 去除pdf文件的许可口令(密码)
  6. Arm Compiler 5 在 Keil MDK 5.37中不可用
  7. 深度解读汽车域控制器
  8. 【案例】中国城市规划设计研究院:新型城镇化监控与评估平台
  9. 删除Windows10系统远程桌面的连接记录
  10. ANDROID高仿京东分类_类似京东分类界面源代码下载