SpringBoot整合Jpa+kingbase人大金仓数据库 摆设心得

十念  金牌会员 | 2024-12-18 18:42:55 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 990|帖子 990|积分 2970

一、概述 

           近来实习公司在推进现有项目的国产化替换,必要将原项目所用的Mysql数据库迁移到Kingbase人大金仓国产数据库。在根据网上现有教程JPA整合Kingbase的步骤操作下来遇到若干报错,整理成文记录一下以便后人查阅规避。
          由于这篇文章是在踩坑之后过了好久才写的,所以有些问题并没有其时情况的配图,叙述也可能会有不严谨,但要是遇见了同样的问题来回看文章肯定可以办理。
   二、心得

        1.Kingbase 授权文件

           在安装完人大金仓的数据库之后,利用官方自带的KStudio数据库开发工具举行数据库操作的时间,包括之后使用JPA配置并连接数据库后,对数据库举行增编削查的时间,偶然会遇见操作不乐成报错,在查看kingbase的日志文件(路径在 \data\sys_log 目录下)后会发现有 :
          HKT [26568] FATAL:  对不起, 已经有太多的客户
  
  

  
          这个报错实际上是由于当前使用的 Kingbase 授权文件使用的开发者过多。
  
  

  
          办理办法也很玄学,就是去官网重新下载授权文件并更换,如过还是会出现这个报错那么尝试下载企业版的试用授权文件更换即可。
  
                

           2.JPA-application.yml配置

            这部分直接cv即可,必要留意的地方:


  • drivername不要填写错
  • url库名填写正确
  • username要跟hibernate.default_schema保持划一,因为人大金仓的数据库存储模式是先创建用户再创建模式,用户跟模式关联之后,在数据库目录对应模式下才可以建表存放数据。这两部分的内容要划一若不划一会出问题(这部分还是没有太深入去理解,仅从应用层面来说保持划一不会出问题)
  • hibernate方言要改成kingbase对应的方言
  • 其余选项按实际要求修改
  • 留意数据库暗码要填写正确!!!有时间报各种奇怪错误末了都是因为暗码填错。
  1. spring:
  2.    application:
  3.      name:
  4.    datasource:
  5.       #数据库1 主库
  6.       one:
  7.             driver-class-name: com.kingbase8.Driver
  8.             jdbc-url: jdbc:kingbase8://localhost:54321/库名
  9.             username: oa_manager
  10.             password: 12345
  11.    jpa:
  12.             show-sql: true
  13.             open-in-view: false
  14.             generate-ddl: true # 需要加上这个才能自动生成数据库表
  15.             hibernate:
  16.                 ddl-auto: update
  17.             properties:
  18.               #     hibernate方言:就是对应数据库,在根据对应的数据库进行自动实现sql
  19.               hibernate.dialect: org.hibernate.dialect.Kingbase8Dialect
  20.               #     自动生成的sql中from对应的表
  21.               hibernate.default_schema: oa_manager
  22.               #     控制台的sql 进行格式化
  23.               hibernate.format_sql: true
  24.               #     控制台可以看到JDBC运行时间
  25.               hibernate.generate_statistics: true
  26.               #     是否显示注释,用以指出什么操作产生的 SQL 语句
  27.               hibernate.use_sql_comments: true
复制代码
        3.Kingbase相干依赖包的导入

           在安装完人大金仓kingbase数据库之后,在对应安装目录
          KESRealPro\V008R006C008B0020\Interface
          下的hibernate和jdbc目录中就有jar包,优先使用hibernate-4和kingbase8-8.6.0这两个包,实测在JDK8和JDK17下均可使用。
          按照本人习惯在java项目目录中创建Lib目录存放这两个Jar包,然后在pom中添加本地存放目录直接引用本地Jar包即可。
  1.         <!--kingbase8.jdbc-->
  2.         <dependency>
  3.             <groupId>com.kingbase8.jdbc</groupId>
  4.             <artifactId>kingbase8</artifactId>
  5.             <version>8.6.0</version>
  6.             <scope>system</scope>
  7.             <systemPath>${pom.basedir}/libs/kingbase8-8.6.0.jar</systemPath>
  8.         </dependency>
  9.         <!--hibinate-4-->
  10.         <dependency>
  11.             <groupId>hibernate-4.dialect</groupId>
  12.             <artifactId>hibernate-6.2.dialect</artifactId>
  13.             <version>6.2</version>
  14.             <scope>system</scope>
  15.             <systemPath>${pom.basedir}/libs/hibernate-6.2.dialect.jar</systemPath>
  16.         </dependency>
复制代码
        4.Mysql数据库迁移Kingbase

         在Kingbase安装目录
        \KESRealPro\V008R006C008B0020\ClientTools\guitools\KDts\KDTS-WEB\bin
  下有startup.bat跟shutdown.bat两个启动项,运行startup后,cmd窗口会短暂出现后消失,接着打开http://localhost:54523/即可打开KDTS数据库迁移工具的web界面,输入默认账号:admin 暗码:123456&*登录数据库迁移工具。
          在数据库迁移的过程中,目标数据库选择kingbase,数据库版本要选择V8R6而不是V8R6C7,否则在数据迁移的过程中会迁移数据失败。
  
        

数据库版本选择(上正确 下错误)

 目标数据库版本选择错误迁移失败报错




免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

十念

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表