首页 >> oracal >> 正文
实现不同数据库之间的迁移
  来源:Oracle 作者:疯狂书生 时间:2008-3-10  

 受很多朋友的要求,在工作当中很时候要对数据库进行迁移,本人利用业余时间编写了一个迁移的实例,有这方面需要的朋友们可以借鉴和指正!
     本例主要实现Oracle向Access的迁移,综合运用Java JDBC驱动以及JDBC-ODBC桥分别连接Oracle数据库管理系统和Access数据库,其他的数据迁移也是一样,只不过修改一下连接方式而已!本例中将Oracle中获取的数据,直接插到Access对应的数据表中,注意迁移时要保持两个数据库之间表结构的一致性。
Oracle中原始数据和移植到Access数据库对应的数据表中的有关数据如图:
IDNAME DEPARTMENY SALARY
--------------------------------------------
1 Eclipse 技术部 2500
2 大峡 开发部 3000
3 天一 技术部 5000
4 船长 开发部 4000
,主要就是新建一个类DataPass,由于本例要使用连接Oracle用的JDBC包,首先要导入对应的Oracle JDBC,以下是DataPass.java的代码:
package datamanage;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;

public class DataPass {

public static void main(String[] args) {
String serverName = "localhost";
try
{
Class.forName("oracle.jdbc.driver.OracleDriver");
String url = "jdbc:oracle:thin:@"+serverName+":1521:eclipsedb";
Connection connOracle = DriverManager.getConnection(url,"eclipse","888888"); //连接源数据源
Statement stmt = connOracle.createStatement();
ResultSet rs = stmt.executeQuery("select * from employee");
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection connAccess = DriverManager.getConnection("jdbc:odbc:target","",""); //连接目标数据源
PreparedStatement pstmt = connAccess.prepareStatement("insert into employee(id,name,department,salary) values(?,?,?,?)");
//循环装入数据
while(rs.next()) {
pstmt.setInt(1,rs.getInt("id"));
pstmt.setString(2,rs.getString("name"));
pstmt.setString(3,rs.getString("department"));
pstmt.setDouble(4,rs.getDouble("salary"));
pstmt.executeUpdate();
}
//释放资源
rs.close();
stmt.close();
pstmt.close();
connOracle.close();
connAccess.close();
}catch(Exception e){
e.printStackTrace();
}
}
}

本例中主要要注意以下:
1、使用不同的数据库连接方式,注意前期数据配置和外部包的导入;
2、注意资源的释放,以确定完整地保存插入的数据;
要遵循的原则:
1、完整的记录相关的数据信息;
2、按照数据的不同类别分别存放在不同的数据表中;
3、建立表与表之间的关系,确定相关的字段;
4、尽量避免数据的重复存放!
原文地址:http://javaresearch.org/article/showarticle.jsp?column=108&thread=51728


上一篇:建立一个传表名参数的存储过程
下一篇:分析Oracle数据库日志文件(2)

本篇新闻:实现不同数据库之间的迁移

相关新闻
相关评论
 
评论表单加载中...
 
oracal文章

 在Visual C++应

 编辑:admin

 时间:2008-3-10


   编程入门网-介绍.NET中的委派(Delegates)之三
   编程入门网-介绍.NET中的委派(Delegates)之二
   编程入门网-介绍.NET中的委派(Delegates)之一
   编程入门网-用Visual C#实现文件下载功能
   编程入门网-用C#写简单的CGI程式
最新文章
   编程入门网-介绍.NET中的委派(Delegates)之三
   编程入门网-介绍.NET中的委派(Delegates)之二
   编程入门网-介绍.NET中的委派(Delegates)之一
   编程入门网-用Visual C#实现文件下载功能
   编程入门网-用C#写简单的CGI程式
总站搜索
搜索
 
热门文章
   oracle数据库文件中的导入\导出
   用Oracle10g列值掩码技术隐藏敏感数据
   VB程序中用ADO对象动态创建数据库和表-VB.NET
   用VB6写简单程序 让电骡自动关机-VB.NET
   使用.NET2.0编写COM组件供VB调用-VB.NET
   VB.NET:键盘控制焦点移动-VB.NET
   用VB.NET绘制GDI图形-VB.NET
   vb.net中应用 ArrayList 实例-VB.NET
 
推荐文章
ASP.NET中的状态管理-ASP.NET
VC、IE、ASP环境下打印、预备的完美解决方案
oracle数据库文件中的导入\导出
VB.NET中快速访问注册表技巧-VB.NET
在vb中实现超连接的方法!和直接发邮件-VB.NET
用VB做realplayer播放列表-VB.NET
在VB.NET中如何实现和利用SortedLists-VB.NET
利用VB.NET Stopwatch对象记录时间-VB.NET
成都古羌科技有限公司版权所有: Copyright@2007-2010 ,ALL Rights Reserved 蜀ICP备07017240号