20180702-3 mysql、gbase数据库和3.x代码适配研究-国产化改造

gbase在mysql基础上开发的,基本上的函数应该都可以用。


1、mysql行式存储,gbase列式存储
1、大部分ORACL函数是无法使用的:比如说NVL()等。
2、 关键字的限制:比如说sql 等不能作为字段名。
3、 每个派生表必须有别名
4、分页,oracle的分页和sqlserver分页机制都不能使用,应使用其特有的LIMIT函数(这个使用起来其实更方便)。
5、使用系统表的时候需要注意,GBase的系统表跟ORACL,SQL完全不一样,例如:根据表名找字段oracle
select column_name,comments from USER_COL_COMMENTS where table_name = tablename
GBase:show columns from tablename(mysql中也是这样用的)
6、GBase没有字段备注的概念,这个需要重点注意,跟传统的数据库差别比较大。
7、删除的语法需要规范 例:delete tablename where condition 在orcle是没错的,但是GBase不行,需要改成:
delete from tablename where condition,注意from不能少(和mysql一致)







需要验证一下:

1、申请到试用版本后,在本地装上gbase数据库(是否需要把mysql服务先停了,互斥的)

2、把3.x的mysql数据库导入转换到gbase数据库中

3、驱动jar包方言包添加进3.x代码

4、启动起来,点击功能看是否报错
大致点一下,修改后台报错有错误的地方的sql语句
相关查询地方临时表加上别名(试下不加是否会报错)


5、做成可切换的,mysql、gbase可以切换(复制一份proxo-.xml、hibernate-.xml文件里面配置的是不同的驱动和方言,之前的mysql的有了,加一套gbase的,
系统启动时候读取配置文件中配置的使用哪种类型数据库,

6、有些细微的地方比如说查询语句mysql和gbase差别很大的,单独去写套gbase的查询,拿session中的dbtype来判断决定,走gbase还是mysql的查询?
(全功能测试的时候才能精确发现到)



二、代码改造方面:

3gbaseproxool...配置文件。


 3gbasehibernate...配置文件。

 









猜你喜欢

转载自blog.csdn.net/u012041038/article/details/80902146
今日推荐