springboot项目从达梦数据库切换到oracle数据库

前言:        

        本文记录了springboot项目从达梦数据库迁移到oracle数据库的全过程和一些容易踩到的坑。 

        一个前后端分离的springboot项目,前端采用的vue框架,后端采用的若依框架,数据库使用的是国产数据库达梦数据库dm8。现切换成oracle数据,可分两大步骤:数据库的数据迁移和后端项目的配置文件和Mapper.xml的修改。

过程

一、数据库的迁移

数据库的数据迁移可以使用达梦自带的dm数据迁移工具,步骤如下:

1.打开dm数据迁移工具,新建工程,项目名随意,点击确定,创建工程

 2、打开工程,找到工程里 迁移的文件栏,点右键新建迁移,迁移名称 随意,

3、双击 新建的迁移项目,点下一步,进入  选择迁移方式界面。在这个界面可以选择各种迁移的方式类型,可以从达梦数据库把数据迁移到其他数据库,也可以从其他数据库把数据迁移到达梦数据库里,还可以把把达梦数据库的数据迁移到文件里。选择DM==>oracle ,点击下一步

 4、进入数据源界面,输入达梦数据库的 用户名和密码,指定驱动可以使用默认的,点击下一步,进入目的界面,输入oracle 数据库的用户名和密码,根据自己的oracle数据库版本修改数据库连接驱动jar包,驱动jar包需要自己去下载,对照图如下:

5、 点击下一步,选择你要迁移的数据库,如果迁移到数据库的表名,字段名,有大小写混在一起,可以把保持对象名大小写这一栏取消,这样就会变成都是大写的名字,oracle  表名 、字段名 默认不区分大小写,除非建表语句中字段名带双引号 如CREATE TABLE "TableName"("ID" number)如果保持对象名大小写这一栏是勾上的,迁移工具在迁移的时候会对表名,字段名加上双引号,可能在后面程序运行的时候会报找不到表或者字段的错误,点击一步。

 6、进入选择迁移对象界面,可以按自己需求选择,也可以直接点反选,选中全部。随便选中一个表,点击下方的转换  ,进入设置表映射关系界面。根据自己的需求勾选, 在列映射选项界面里可以查看表的字段装换后的效果,也可以自己修改。修改完后点下一步,可预览转换的内容,点击完成,等待转换完成。



二、项目的配置文件和mapper.xml文件的修改

1、springboot的配置文件修改

#修改数据源配置   主要修改驱动,用户名,密码
spring:
  config:
    activate:
      on-profile: dev
  datasource:
    type: com.alibaba.druid.pool.DruidDataSource
#达梦数据库的驱动
#    driverClassName: dm.jdbc.driver.DmDriver
#oracle数据库的驱动
    driver-class-name: oracle.jdbc.driver.OracleDriver
#mysql数据库的驱动
#    driverClassName: com.mysql.cj.jdbc.Driver
    druid:
      # 主库数据源
#这里是达梦数据库源
#      master:
#        url: jdbc:dm://localhost:5236
#        username: TTT
#        password: 11111111

#这里是mysql数据库源
#      master:
#        url: jdbc:mysql://localhost:3306/unity?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
#        username: root
#        password: 111111

#这里是oracle数据库源
      master:
        url: jdbc:oracle:thin:@192.168.1.20:1521/ORCL
        username: javasys
        password: 11111111


#修改分页插件的配置,达梦数据库使用的mysql,修改成oracle

# PageHelper分页插件   helperDialect: oracle设置分页插件为oracle方言的sql语句
pagehelper:
  helperDialect: oracle
  reasonable: true
  supportMethodsArguments: true
  params: count=countSql

oracle数据库驱动需要去官网下载,根据不同版本的oracle数据库下载驱动的jar包,加入本地maven仓库里,之后在pom.xml文件中引入依赖。

<!--         &lt;!&ndash; Mysql驱动包 &ndash;&gt;-->
<!--        <dependency>-->
<!--            <groupId>mysql</groupId>-->
<!--            <artifactId>mysql-connector-java</artifactId>-->
<!--        </dependency>-->
        <!-- oracle 驱动包-->
        <dependency>
            <groupId>com.oracle</groupId>
            <artifactId>ojdbc6</artifactId>
            <version>11.2.0.2.0</version>
        </dependency>

2、修改springboot项目里的mapper.xml文件

达梦数据库的sql语法与oracle有些不同,需要去修改一些sql语句。

我遇到的一些需要改的函数
左边为dm数据库sql函数→右边为oracle数据库sql函数

ifnull(perms,'')→nvl(perms,'')    判断是否为null,是的话用''代替

sysdate()→sysdate 系统时间

date_formate(dateString,pattern)→to_date(dateString,pattern) 时间格式化

concat('%', #{menuName}, '%')→concat('%'||#{createBy}, '%')   模糊查询字符串拼接,oracle的concat()函数只有两个参数

<insert id="insertPost" parameterType="SysPost" useGeneratedKeys="true" keyProperty="postId">   →     <insert id="insertPost" parameterType="SysPost" >
		<selectKey resultType="java.lang.Long" order="AFTER" keyProperty="postId">
			SELECT SYS_POST_SEQ.CURRVAL as id from DUAL
		</selectKey>    数据插入返回自增的主键

之后可以运行项目,测试功能,看哪些mapper文件还有错误,再去一一修改。

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值