把orecal项目改成mysql_JAVA项目将 Oracle 转 MySQL 数据库转换(Hibernate 持久层)

本文主要介绍了如何将使用Oracle数据库的项目转换为使用MySQL数据库,包括表结构和数据的迁移,以及后台代码的修改。针对Oracle表名在MySQL中变为小写的问题,通过Eclipse进行全局替换来解决。同时,由于MySQL不支持Oracle的序列,使用Hilo策略替代,对Hibernate的hbm.xml文件进行了相应调整。
摘要由CSDN通过智能技术生成

项目开发时用的是Oracle数据库,但为了更好的做分布式,做集群,我们要将数据库转成 MySQL!

在数据库迁移中首先要做的事是将 Oracle 的表结构以及数据 克隆到 MySQL 数据库。

这点不多说,有很多工具可以实现,网上大神也给出了相应指导。

重点说说后台代码:

一、在 Oracle 数据库中 所有的表明、字段名都是大写,而工具将表结构转到 MySQL 之后表明名成了小写字母,

而在MySQL里列名不区分大小写,但是表名区分大小写(t_xx_paper 表 不是 T_XX_PAPER 表),

所以要将项目中所有的大写表名替换成小写。

1、去数据库复制小写表名 (t_xx_paper 为例)

a3001febd78af072fcab7d97a9a41d5a.png

2、在开发工具里(我用的是 Eclipse)全局替换: Ctrl + H 快捷键

1ef5487da1928a806eab645f1629b45d.png

上面选中 file search, containing text 里面输入将被替换的内容 : T_XX_PAPER, 然后 Replace...

3、在搜索栏下面可以看到整个项目有几个 ‘T_XX_PAPER’ 以及出现的位置, 在 Raplace Text Matches 框的 with 栏里输入要替换成的小写 :t_xx_paper

c4eaa07cc5797a31deb73950abdfa227.png

点击 OK 就完成了, 其他表也按上述步骤执行即可

二、在 Oracle 数据库中用的是序列作为主键,而在 MySQL中用不了。我这里用了 Hilo 代替

在上一篇博客给了说明,这里一笔带过:   http://www.cnblogs.com/linnuo/p/7085688.html

我在 Oracle 的自增主键用的是 NUMBER 类型,转到 MySQL 后成了 decimal 类型

不过这两种类型都不影响映射成 java 的 Long 类型。

将所有带有主键映射的 hibernate hbm.xml 文件的 序列sequence自增 替换成 Hilo 自增

Oracle:

/p>

"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">

MySQL:

/p>

"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">

hibernate_hilo

next_hi

100000000

1、我这里主键用的全都是 ROW_ID 映射成 java 的 Long类型,这就简单了。 全局查找:

fd049e6730d97b21ae96a1f6ebf22601.png

search 所有的 主键 ROW_ID 都会显示在 search 框里

73a6a1432b1ca15ec1f9a44bd5646c3b.png

2、逐一点开search框里的存在 的文件,将主键 ID

改成如下即可:

hibernate_hilo

next_hi

100000000

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值