Spring boot整合人大金仓(KingBaseEs)国产数据库

1年前 (2022) 程序员胖胖胖虎阿
141 0 0

目录

一、导入依赖

二、配置数据库连接

三、与mysql不兼容的函数

四、新建表单

五、数据库迁移工具(将现有的mysql数据库直接迁移到人大金仓kingbase8中)

六、kingbase8数据库备份


一、导入依赖

<!--KingBase-->
<dependency>
    <groupId>com.kingbase8</groupId>
    <artifactId>kingbase8</artifactId>
    <version>8.2.0</version>
</dependency>
注意:maven不下来的话 可以直接去官网下载JDBCjar包,具体位置如下图:

 Spring boot整合人大金仓(KingBaseEs)国产数据库
 

二、配置数据库连接

spring:
  application:
    name: oauth-server
  datasource:
    jdbc-url: jdbc:kingbase8://localhost:54321/dgdb_test
#    type: com.zaxxer.hikari.HikariDataSource
    driver-class-name: com.kingbase8.Driver
    username: SYSTEM
    password: 123456

三、与mysql不兼容的函数

(1)mysql—— date_format(SYSDATE(),'%Y')   替换为  to_char(SYSDATE(),'YYYY');
                           date_format(SYSDATE(),'%Y-%m-%d %H:%i:%s') 替换为                                                     to_char(SYSDATE(),'YYYY-MM-DD HH:MI:SS');
                            year() 函数 替换为 to_char();

(2)kingbaseEs为空判断
         mysql—— ifnull(字段,默认值)        kingbaseEs——nvl(字段,默认值)

(3)mysql的group_concat函数 
         kingbaseEs——string_agg(expression,delimiter)    输入值连接成一个串,用定界符分隔
         例如:SELECT string_agg(a, ',' ORDER BY a) FROM table;

(4)mysql field 排序 函数   order by field (status,-1,1,0,2) asc

         kingbaseEs decode函数 order by  decode(status,-1,1,0,2) asc

(5)人大金仓获取当前系统时间: select now()  或者 select localtimestamp

(6)mysql——substring_index( '广东省/中山市/南桥镇' , '/' ,-1 )  返回 "南桥镇"  截取最后一个符号后面的字符串
         人大金仓实现这种方式 
         1、反转字符串 reverse('广东省/中山市/南桥镇')   返回 "镇桥南/市山中/省东广"
         2、截取0到第一个符号即可 
             substring(reverse('广东省/中山市/南桥镇'), 0 ,POSITION('/' IN reverse('广东省/中山市/南桥镇')) -1 )
              返回 "镇桥南"
         3、再次反转字符串即可
              reverse(substring(reverse('广东省/中山市/南桥镇'), 0 ,POSITION('/' IN reverse('广东省/中山市/南桥镇'))-1 ))
              返回 "南桥镇"

四、新建表单

(1)新建的表一般放到对应数据库的PUBLIC中

                                          Spring boot整合人大金仓(KingBaseEs)国产数据库
(2)字段属性介绍(常用字符串)

          1、实体类中的 String类型 对应的字段类型为 CHARACTER VARYING  精度代表长度
          2、实体类中的 int 类型 对应的字段类型为 INTEGER、SMALLINT、INT2等
          3、实体类中的Double 和BigDecimal类型 对应的字段类型为 NUMERIC 精度代表长度 标度                 代表保留几位小数
          4、实体类中的 Date 类型 对应字段类型为 TIMESTAMP WITHOUT TIME ZONE(带时分                   秒) DATE(不带时分秒)

Spring boot整合人大金仓(KingBaseEs)国产数据库

          5、添加主键 
Spring boot整合人大金仓(KingBaseEs)国产数据库

          6、主键自增实现方式
                CREATE TABLE tablename ( colname SERIAL );

          7、注意:人大金仓 kingbase8 R3版本有一个bug 新建表单后字段的注释在第一次建表完成后会消失,需要重新编辑注释第二次保存才会成功

五、数据库迁移工具(将现有的mysql数据库直接迁移到人大金仓kingbase8中)

      1、点击迁移工具
       Spring boot整合人大金仓(KingBaseEs)国产数据库

       2、进入界面点击右键 新建 数据迁移项目

       Spring boot整合人大金仓(KingBaseEs)国产数据库

       3、在新建的项目中点击 右键 新建 (连接要迁移的mysql数据库)    

     Spring boot整合人大金仓(KingBaseEs)国产数据库
 

    4、填写要迁移的mysql数据库信息 点击测试连接  测试连接成功后 点确定(注意:选对自己的数据库版本)

        Spring boot整合人大金仓(KingBaseEs)国产数据库

           Spring boot整合人大金仓(KingBaseEs)国产数据库

         5、新建要迁移到的kingbase8连接(步骤与新建mysql连接一致)

          Spring boot整合人大金仓(KingBaseEs)国产数据库

         6、开始迁移任务 右键 数据库迁移任务  新建迁移任务(源数据库选步骤3和4 要迁移的mysql数据库连接,目标数据库选步骤5 新建的kingbase8数据库连接) 点下一步

                   Spring boot整合人大金仓(KingBaseEs)国产数据库

               选中要迁移的mysql数据库  注意:下拉目标模式名可以选择要迁移到哪个模式下 点下一步

                   Spring boot整合人大金仓(KingBaseEs)国产数据库

             选中要迁移的表单  点下一步

                Spring boot整合人大金仓(KingBaseEs)国产数据库

         默认下一步

          Spring boot整合人大金仓(KingBaseEs)国产数据库
      点击完成

          Spring boot整合人大金仓(KingBaseEs)国产数据库

       7、完成后如下图:点击执行

          Spring boot整合人大金仓(KingBaseEs)国产数据库

       确认迁移   点OK

         Spring boot整合人大金仓(KingBaseEs)国产数据库

      开始迁移  如下图

      Spring boot整合人大金仓(KingBaseEs)国产数据库

 注意:迁移会报很多错误,不要打断,报错是因为金仓数据库里面关于索引名以及主键名全库唯一,mysql是在单表唯一,所以迁移过来的主键名或者索引名会报冲突;解决办法就是 没有成功迁移的表的主键在kingbase8中重新添加主键或者索引,可能涉及的表单较多,但是目前没有别的办法,只能一个表一个表的去添加主键或者索引。

六、kingbase8数据库备份

       1、右键想要备份的数据库,点击逻辑备份,如下图,可以选择备份的文件位置和备份为何种文件,点击备份
Spring boot整合人大金仓(KingBaseEs)国产数据库

     2、备份过程中可能会报错,如下图:    这种原因是由于本地kingbase8数据库版本与服务器上的数据库版本不一致导致的,将两者更换为统一版本即可。
Spring boot整合人大金仓(KingBaseEs)国产数据库

相关文章

暂无评论

暂无评论...