应用开发 | MySql版快速兼容达梦数据库经验(一)
本文主要介绍国产信创相关概念及国产数据库达梦兼容的一些开发分享
一、信创及国产化概念
在介绍达梦数据库的兼容之前先给大家普及一下信创及国产化相关概念,如下所示:
1.安可(安全可靠的简称)
安可的主要里程碑标志事件是在2019年,我国在信息、网安领域,逐渐启动“安全可靠工程”,安全可靠工程证明了我国具有安全可靠关键系统、关键应用及关键软硬件产品的研发集成能力。能够初步实现对国外信息技术产品的全方位替代。实现时,国家提出“2+8”安全可控体系,“2”是先在党政机关,围绕办公及国家重要信息系统推进国产化替代,随着逐步在国计民生的”8“大行业:金融、电力、电信、石油、交通、教育、医疗、航空航天实现安全可靠、自主可控,保障国家信息安全的工作全面展开。
2.信创(信息技术创新的简称)
信创是信息技术应用创新产业的简称,主要包括基础设施、基础软件、应用软件和信息安全等四大领域。可以把信创理解为安可的升级版本。2020年央行成立金融信创生态实验室,第一批金融信创解决方案出现,被认为信创产业的应用实践元年。信创把基础软硬件产品串联起来,通过生态上下游产品兼容适配,实现全链条安全可控。强调国产产品技术全栈支持。目的是从基础硬件、基础软件、应用软件到信息安全各个方面,通过自主研发和推广自主化、国产化的技术标准,从信息安全角度出发,达到自主可控,解决核心技术“卡脖子”的问题,不受制于外国技术。其宗旨在于实现信息技术自主可控,规避外部技术制裁和风险,其核心是建立自主可控的信息技术底层架构和标准,推动全产业链的国产化替代。
3.国产化
国产化是指在产品或服务中采用国内自主研发的技术和标准,以替代过去依赖的进口产品和技术的过程。主要涉及基础硬件、基础软件、应用软件、信息安全四大板块。
二、国产数据库选型-达梦(DM)
我们做企业软件用的MySql关系数据库,在信创选型中,我们优先选择了达梦数据库,因为其现在是国产数据库第一个上市,同时在中国信息安全测评中心的集中式数据库排名第一位,如下:
详细可以点击安全评测报告进行查看
三、开发准备
开发达梦数据库兼容时,我们首先到官方下载DM开发版,并进行安装,如下所示:
其次,我们需要按照相应的开发/测试服务器的操作系统安装相应的版本。具体可以参考DM官方运维手册。
然后,我们建议开发人员下载DM客户端程序进行安装,虽然有其他的数据库客户端工具也可以连接,但是没有自带的功能强大。安装客户端后,如下所示,你也会发现有其他的DM工具,如迁移工具等。
四、Sql脚本兼容的若干分享
现有系统仅支持MySql数据库,同时使用的数据层框架为MyBatis,因此在兼容达梦数据库的时候,我们有如下注意点需要进行调整。
1. DDL结构脚本可以直接使用达梦官方提供的迁移工具转换生成
2. 关键保留字
MySql的Sql使用两个撇``来声明字段名或表名的,DM数据库则需要用双引号""来表示。
3. varchar长度问题
DM数据库在支持LENGTH_IN_CHAR参数设置为1时,长度按字符计算,而设置为0时按字节计算。但是有些达梦数据库版本是不支持LENGTH_IN_CHAR参数的,使用varchar类型时,需要增加varchar长度,否则会报错,或者替换为nvarchar类型。
4. 不支持unsigned,需要调整成int,达梦也不支持int带长度
5. group by差异问题
MySql支持group by的列和select列不一致,其用意是获取按照group by 列的去重并取第一行,但是达梦数据库不支持这种语法
6. 单引号转义问题
使用单引号用’'特别是html插入到数据库的,如果以前使用 ’ 可以全部替换成 ‘’
7. 日期字符串不要带T
8.order by 可空字段的时候,需要注意NULL和非NULL的比较顺序与MySql相反
9.不支持ignore替换为空
10.convert(value,value_type)改成convert(value_type,value);
11.uuid()函数不可用,需要改成newid()
12.条件||需要改成or
更多推荐
所有评论(0)