我有问题请帮助我。
我有一个包含10个表的本地数据库。我的工作是逐个读取每个表中的数据(在某些条件下从每个表中选择数据),然后将该数据存储在远程数据库中。远程数据库具有本地数据库中相同的10个表。简单来说,我必须将数据从本地数据库移植到远程数据库。
答案 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://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展示了如何做到这一点。
总而言之,您需要执行以下步骤
Connection
到源数据库Statement
并将select
个查询发送到源数据库Resultset
检索reulsts并保存在某些POJO ResultSet
,Statement
和Connection
源数据库Connection
目标数据库Statement
并将update/insert into
个查询发送到目标数据库ResultSet
,Statement
和Connection