广告
返回顶部
首页 > 资讯 > 数据库 >达梦数据库迁移(三)
  • 459
分享到

达梦数据库迁移(三)

达梦数据库迁移(三) 2016-06-17 08:06:11 459人浏览 绘本
摘要

前言 前面两篇文章,介绍了一些迁移前的准备工作,实现了数据的导入,但是当我将数据导入到DM后,启动了自己的项目,接下来一堆报错接踵而至,总结了一些常见的报错,在这里做个记录。 报错记录 关键字 达梦数据库的关键字是双引号(""),而Mys

达梦数据库迁移(三)

前言

前面两篇文章,介绍了一些迁移前的准备工作,实现了数据的导入,但是当我将数据导入到DM后,启动了自己的项目,接下来一堆报错接踵而至,总结了一些常见的报错,在这里做个记录。

报错记录

关键字

达梦数据库的关键字是双引号(""),而Mysql的关键字是反引号(``),所以一些sql的字段加了关键字的,只能做下替换。
这次替换其实后来发现替换的地方还挺多的,究其原因,还是在设计mysql表字段的时候,起名字不规范引起的,用了一些关键字做了字段名,如key、code等字段名。
真是偷懒一时爽,改起来火葬场

mybatis大小写转换

mybatis在我们开启了如下配置

mapUnderscoreToCamelCase:true

后,在mabatis的mapper文件写了如下sql后:



		
select
	t1.id as id,
	t1.work_id as workId,
	t1.work_ip as workIp,
	t1.work_moudle workMoudle
from
	xxx t1

发现并没有在前端转成驼峰命名,而是变成了一堆小写,究其原因,还是达梦数据库的Driver和mysql的Driver实现有点差别,感兴趣可以去研究源码,将sql改为如下内容即可:

select
	t1.id as id,
	t1.work_id as work_id,
	t1.work_ip as work_ip,
	t1.work_moudle work_moudle
from
	xxx t1

建议mapper文件使用resultMap实体映射

函数替换

mysql当中有些函数达梦是不适用的,需要做些适配

  • group_concat() 替换成 wm_concat()
  • 去除STR_TO_DATE()
  • 不支持 from_unixtime 函数,使用 round 代替

个人觉得,数据库是提供了一些比较方便的函数,但是如果项目为了兼容性更强,或者强依赖索引,还是在业务层处理比较好。

mybatisplus查询有达梦的关键字

实体类添加如下:

    @TableField(""logic"")
    private String logic;

varchar和text

text字段无法distinct,group by,order by,建议改为varchar

结语

将上面的问题修改完成后,系统确实可以运行了起来,接下来要思考的就是,如何可以一套代码兼容两个数据库。

您可能感兴趣的文档:

--结束END--

本文标题: 达梦数据库迁移(三)

本文链接: https://www.lsjlt.com/news/8646.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作