SpringBoot + JPA + 神通数据库

1. 兼容国产化数据库背景

公司项目中之前使用的是mysql数据库,框架是SpringCloud + JPA + MySql属于微服务框架,由于接到的项目需要用到国产化数据库——神通数据库,从而了解到有神通数据库,之前没怎么了解过,通过网上找资料发现神通数据库的相关资料比较少见,而相关的数据库语法等资料更是少,从神通数据库的安装包找了下还是有好几个相关文档的,但大部分的都是应对windows系统,而我开始机器是MAC很不巧,后来也查找了一些文档和自己的不断试错,终于算是初步调通神通数据库的兼容,尽量少的改写原有项目代码,说着这么多下面直接上干货;

2.兼容神通数据库的准备工作;

由于神通数据库有自己的驱动oscarJDBC16.jar包和方言oscarHibernate5.jar,maven中央仓库是没有的,需要将这两个包以第三方包添加到maven私服nexus中,这里就不具体说步骤了,不太了解的可以区查询maven私服仓库,由于CSDN限制上传jar包,文档末尾会附上jar包链接;

以下是我上传maven私服后生成的maven依赖

<dependency>
      <groupId>com.stdb</groupId>
      <artifactId>stoscarJDBC16</artifactId>
      <version>1.0</version>
 </dependency>
<dependency>
      <groupId>com.stdb</groupId>
      <artifactId>oscarHibernate5</artifactId>
      <version>1.0</version>
 </dependency>

3.配置yam文件

spring:
  datasource:
    driver-class-name: com.oscar.Driver
    # CserverTimezone=Asia/Shanghai 设置时区 
    # currentSchema=USRT 可以支持原生sql找到表
    url: jdbc:oscar://192.168.10.1:8003/OSRDB?CserverTimezone=Asia/Shanghai&useSSL=FALSE&currentSchema=USER
    username: SYSDBA
    password: szoscar55
  jpa:
    hibernate:
      ddl-auto: update
    # 设置数据库方言
    database-platform: org.hibernate.dialect.OscarDialect
    showSql: true
    # 配置默认scheme
    properties:
      hibernate:
        default_schema: USER

上面的配置文件是采了好多坑的最终形态,特别注意有几个点

(1)设置时区,不设置时区可能存在时间偏差,spring默认是UTC时间;

(2)设置schema

        由于神通数据库有些类似ORACLE数据库,数据库下面不直接是表,还有一层也就是配置schema的名字,需要注意要配置两处就可以不需要每张表的映射对象都添加schema参数。

不需要添加 @Table(name = "user_info", schema = "USER")

第一处:单独配置的spring.jpa.properties.hibernate.default_schema = USER(需要配置的schema) 这里的配置可以支持JPA的HQL语法写的语句(在dao层写的对象查询语句);

第二处:追加到url配置后面的currentSchema=USER,这里的添加是为了适配在DAO层写原生sql语句找到表;

第三处:网上有其它神通数据库配置的有的会配置spring.jpa.hibernate.naming.physical-strategy = org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl,在我这里被去除了,原有是由于项目中有部分人开发表映射对象时字段中没有@Column注解(表中字段是带有下划线,而项目中使用的是驼峰);

(3)设置方言

将jpa中配置的方言修改成神通数据库的方言,如果不配置会报Dialect错误,而且这块配置需要依赖oscarHibernate5.jar包;

以上就是我初识神通数据库的理解与整理,如果说的不准确的地方欢迎各位大神评论,下面附上带有两个JAR包的链接

有道云笔记

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值