从一个数据库读取数据并将其存储在其他数据库中

时间:2013-06-05 07:08:47

标签: java database

我有问题请帮助我。

我有一个包含10个表的本地数据库。我的工作是逐个读取每个表中的数据(在某些条件下从每个表中选择数据),然后将该数据存储在远程数据库中。远程数据库具有本地数据库中相同的10个表。简单来说,我必须将数据从本地数据库移植到远程数据库。

4 个答案:

答案 0 :(得分:1)

如果我在oracle中说话,你可以在目标数据库中创建一个数据库链接,例如source_link

http://docs.oracle.com/cd/B28359_01/server.111/b28310/ds_concepts002.htm

然后连接到目标数据库

插入A(field1,field2,...)选择field1,feild2 ....来自A @ source_link其中

与Java无关,但也是一种有效的方式

答案 1 :(得分:1)

创建一个存储过程,从本地数据库复制到远程数据库。从java程序中调用存储过程。仅当您的数据库实现支持链接到来自不同实现的远程数据库时,才可能这样做。

从JAVA编程看起来似乎是一个可怕的想法,除非真的没有别的办法。

答案 2 :(得分:0)

您可以使用ETL(提取/传输和加载)。 Spoon是一个免费工具,您可以使用SQL创建转换来执行此类任务。

http://kettle.pentaho.com/

http://wiki.pentaho.com/display/EAI/Spoon+User+Guide

http://rpbouman.blogspot.com.au/2006/06/pentaho-data-integration-kettle-turns.html

答案 3 :(得分:0)

实现此目的的一个简单方法是使用jdbc

首先,您需要连接到每个数据库,因为您需要为每个数据库系统处理jdbc driver,jdbc驱动程序是一个实现jdbc API的库,由每个数据库提供他的数据库系统的供应商。

请参阅this link,了解如何建立与数据库的连接。

建立Connection后,您可以创建Statement来检索和更新数据。检索到的数据以ResultSet返回。

This link展示了如何做到这一点。

总而言之,您需要执行以下步骤

  1. 创建Connection到源数据库
  2. 创建Statement并将select个查询发送到源数据库
  3. 使用Resultset检索reulsts并保存在某些POJO
  4. 的集合中
  5. 关闭ResultSetStatementConnection源数据库
  6. 创建Connection目标数据库
  7. 创建Statement并将update/insert into个查询发送到目标数据库
  8. 关闭目标数据库的ResultSetStatementConnection
  9. 完成!