项目国产化,mysql替换为神通数据库记录

1、背景

项目中mysql数据库要替换成神通数据库;库中的表有部分是内置数据,即项目安装部署后库、表要已经创建完成,并且部分表里要有内置数据,项目启动要能根据实体类动态更新表结构(为了方便升级、运维)

2、基本流程

2.1 安装使用神通数据库
由于资源匮乏,暂时只有windows 10版神通数据库,数据库安装好后会生成一个文件夹,文件夹内有一系列操作神通数据库的工具(创建数据库的工具、数据迁移的工具、管理工具等)

2.2 创建库、启动
神通安装后自带的数据库配置工具来创建一个数据库,并在服务中开启此数据库服务(具体操作可搜索神通数据库使用教程)

2.3 数据迁移
使用神通数据迁移工具,将项目中mysql数据库的结构及数据(包括表、约束、数据等)迁移到神通数据库。

2.4 数据导出
使用神通的SQL交互工具将迁移好的神通数据库里面的表结构以及表数据导出.sql脚本文件

2.5脚本修改
导出的.sql脚本类似mysql导出的脚本,但是要改写东西。脚本中建表语句下面会有创建索引及约束的语句,导出的pk都是大写且不带双引号,需要把pk修改为小写并加上双引号;不然执行报错。

3.注意点

3.1 .sql脚本导出导入问题
使用神通数据库工具导出的.sql脚本再使用工具导入会报错,目前我是采用执行语句的方法来建表(命令行导入.sql脚本未尝试)
如果执行的话,就有建表语句的顺序的问题,假如a表建表时关联了b表,那就要先把b表先建好
3.2 主键自增问题
神通的sql中,主键可以自增,但是项目的实体中,id的strategy设置为GenerationType.IDENTITY会报错,不支持自增。但是如果先建好表,项目中实体用identity不会报错(由于不利于后期升级与维护,故舍弃),暂时用sequence代替主键自增的功能,每一个实体的id都创建一个sequence
3.3 连接池
项目中之前数据库连接池使用的alibaba的,但是看了alibaba的连接池源码暂时不支持神通,所以就用的自带的连接池
3.4 项目中自定义sql查询
项目中如果有自定义sql,即nativeQuery查询,表前要加schema,采用库.表,例如mysql查询:select * from user;神通中要写select * from test.user 。test为库名。
3.5 部分函数支持
神通的函数不支持find_in_set(),可以用local()函数替代;like查询时,如果表中某个字段类型是数字类型,查询时要使用cast()函数把字段它转为varchar。(在sql工具上写sql语句时可以的,但是项目中用的神通数据库驱动不支持此查询)例如:telNum(电话号码)字段为int型
mysql查询:select * from user where telNum like ‘135%’; 神通查询要改为:select * from user where cast(telNum as varchar(10)) like ‘135%’;

目前还在适配中,后续问题会更新

  • 5
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 12
    评论
国产数据库在替代MySQL方面有一定的发展。MySQL是一种开源数据库,而国产数据库则是指由中国企业开发的数据库产品。国产数据库在功能和性能方面逐渐与MySQL接近,并且在一些特定的领域中已经得到了广泛应用。国产数据库的发展受到了数据库行业的巨大潜力的推动,随着数据量的增长和数据结构的复杂化,国产数据库不断释放出自身的优势。 引用\[1\]中提到了数据库行业的发展时代,其中云数据库时代是当前的发展趋势。国产数据库在云数据库时代中也有所涌现,并且在越来越多的领域得到了应用。国产数据库的发展势头不可忽视。 引用\[2\]中列举了一些SQL语句的生成方式,其中包括了MySQL的selectKey语句。这说明MySQL作为一种常用的数据库,具有一定的特点和用法。 引用\[3\]中给出了一个示例的SQL语句,其中包含了MySQL的插入操作。这也是MySQL数据库的一种常见用法。 综上所述,国产数据库在替代MySQL方面已经取得了一定的进展,并且在一些特定的领域中得到了广泛应用。国产数据库的发展势头不容忽视,未来有望在数据库行业中发挥更大的作用。 #### 引用[.reference_title] - *1* [8月9日晚,连线杨廷琨(杨长老),聊聊数据库国产化替代之路和数据库学习方法...](https://blog.csdn.net/weixin_54551388/article/details/126239560)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [springboot项目中的mysql用国产数据库达梦替换的相关说明](https://blog.csdn.net/xhuiting/article/details/130078076)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值