博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JAVA项目将 Oracle 转 MySQL 数据库转换(Hibernate 持久层)
阅读量:5024 次
发布时间:2019-06-12

本文共 2791 字,大约阅读时间需要 9 分钟。

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

 

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

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

 

重点说说后台代码:

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

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

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

 

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

  

 

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

  

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

  

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

 

      

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

 

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

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

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

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

  

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

    Oracle:

 

 

    MySQL:

hibernate_hilo
next_hi
100000000

  

  1、我这里主键用的全都是 ROW_ID 映射成 java 的 Long类型,这就简单了。 全局查找:<id name="rowId" type="java.lang.Long">

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

 

  

  2、逐一点开search框里的存在 <id name="rowId" type="java.lang.Long"> 的文件,将主键 ID 

         
      
      
    

  改成如下即可:

hibernate_hilo
next_hi
100000000

 

  

 

转载于:https://www.cnblogs.com/linnuo/p/7112070.html

你可能感兴趣的文章
《蚂蚁金服11.11:支付宝和蚂蚁花呗的技术架构及实践》阅读笔记
查看>>
Django创建应用、模型、配置后台自动管理
查看>>
中国剩余定理的_非互素同余模板
查看>>
msys console下 建一组典型的linux环境 存放用户库文件的目录
查看>>
stm32 DMA配置
查看>>
liunx的文件系统及相关的基本命令
查看>>
推荐系统总结
查看>>
P2015 二叉苹果树
查看>>
ASP.NET MVC一次删除多笔记录
查看>>
使用HashSet<>去除重复元素的集合
查看>>
JSON 小记
查看>>
《Linux命令行与shell脚本编程大全 第3版》高级Shell脚本编程---06
查看>>
[1-4] 把时间当做朋友(李笑来)Chapter 4 【开拓我们的心智】 摘录
查看>>
redis数据过期策略【转】
查看>>
ASP.net MVC4 View设置Html代码显示为文本字符问题
查看>>
go语言之进阶篇关闭channel
查看>>
《那些年啊,那些事——一个程序员的奋斗史》——65
查看>>
opencv 内存溢出问题
查看>>
简单的静态网页(宠物网)
查看>>
整合ckeditor+ckfinder,解决上传文件路径问题
查看>>