当前位置:   article > 正文

国产化数据库适配(人大金仓)_国产数据库 适配

国产数据库 适配

本文主要是为了记录在系统做国产化适配过程中出现的问题,主要是数据库适配(Mysql和人大金仓),全是干货,多的话就不说了,直接上代码。

sql语句的适配:

我们系统集成的是mybatisplus,它有一个DatabaseIdProvider接口,这个可以做sql的切换,我们增加一个具体的MybatisPlusConfig配置类,然后自定义初始化一个DatabaseIdProvider对象,即可完成对多个数据库切换。具体步骤如下:

第一步:

图中的KingbaseES这个建议自己调试一下,具体获取的地方在这里:

第二步:在mapper.xml上有一个属性databaseId,这个属性就指定我们上面配置的properties,就完成了对不同数据库的sql切换,具体如下:

以上两个步骤我们就完成了对mysql和人大金仓的双数据库的适配,接下来是一些和mysql不一样的语法,我就说一下我遇到的几个比较特别的问题吧,你们有多的问题可以参考人大金仓的官方文档(个人感觉官方文档。。。。)

第一个不同的地方,查询当前数据库的sql语句和mysql不一样:

mysql:select database();
人大金仓:select current_database() from sys_database limit 1;

第二个不同的地方,这个我当时也看了官方文档半天才发现的,也比较有意思,在我们mysql里面主键自增这个我就不用多说了,应该大家都知道了,但是在人大金仓里面这个就有点不一样了,它的自增是借助于这个函数的nextval,这个函数要使用必须要提前创建一个序列,所以如果你需要建立一个自增主键的表,那么语句是这样子的:

注意一下我框住的地方,而且这里需要注意一下,序列是唯一的,不能重复,如果你对这张表进行了复制或者改名字,序列引用会一直存在,并且在程序中你也能使用修改名字后的表(尤其需要注意),以上就是我集成人大金仓遇到的比较有趣的地方,最后还有一个也备注说明一下,人大金仓的方言和mysql的方言也有点不太一样,目前我发现的就是分页那里有点问题,因此需要自定义一个bean:

因为刚开始做国产化适配,网上资源比较少,也比较杂,因此特意记录一下,希望对大家有帮助。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/933790
推荐阅读
相关标签
  

闽ICP备14008679号