本人是菜鸟,最近要做个数据接口的东西,大概意思描述如下,希望各位大虾帮忙出主意~~~
源数据库ORACLE中有一张表的数据(或几张表的数据)有用(这些数据实时的进行着更新),需要将这些数据读出来,并且写到另一个数据库中(SQL SERVER/MY SQL/.....)。
希望用两个PC跑传输用的程序,一个用来读取和发送,一个用来接收数据并写到新的数据库中,我现在是没有一点方法和头绪,希望各位大虾指点~~
小弟感激不尽~~~!!

解决方案 »

  1.   

    如lz所说,两个程序,一个负责发送,一个负责接收;关键就2个地方,一是数据库操作,二是网络数据传输;
    我想说数据传输部分,一个线程负责循环地在一定时间间隔内(看更新速度而定)从数据库读取更新的的数据,通过socket把数据发送出去,注意每条数据库数据要有个明显的结束符,另一端程序读到这一结束符时才算是读到一条合格的数据;你可以读到一条就处理一条,或者读到一定数量再处理。视更新速度而定,若很快,可考虑多线程处理数据。
      

  2.   

    呵呵,楼上说的让我的思路开了很多~~~谢谢~~~
    不知道大家对这个东西感兴趣么?本人愿意对有兴趣来做这个的朋友支付相应报酬(RMB)~~!!
      

  3.   

    本人愿意对有兴趣做这个的朋友支付相应报酬~~
    本人联系可发站内信,或email:  [email protected]
      

  4.   

    可以不用“每条数据库数据要有个明显的结束符”!,
    可以把每一条数据记录组成一个实体,此实体实现Serializable接口,再把此实体都放到一个LinkedList中,把此LinkedList序列化之后,通过Socket进行传输
      

  5.   

    webservice也可以 主要看你的数据量
      

  6.   

    为什么要写代码来实现呢?
    用ETL写一个调度不行吗?
      

  7.   

    大体可分为数据库操作和网络传输两个部分。
    数据库操作,也可分为读取和写入两个小部分。
    传输也可以分为发送和接收两个小部分。因为传输的数据量比较大,并且,要求传输的数据就有可靠性,
    推荐使用TCP协议进行传输。
    如果,传输操作进行的比较频繁,推荐使用长连接的形式。数据库操作,基本没有什么特别要说的,只是要注意,
    数据库的数据读取部分,要分批次读取,
    不要一次将所有数据都查询出来,要想办法每次只查一部分,
    当当前查询的所有数据都发送完毕后,在进行下一次查询,直到查询出所有的数据。我想到的最佳的办法,应该是:
    1.数据库读取一批数据;
    2.将这批数据进行压缩;
    3.将压缩后的数据进行传输;
    4.传输采用TCP长连接的方式;
    5.接收压缩的数据;
    6.将压缩的数据进行解压;
    7.将解压的数据插入数据库中。当然,对于刚接触Java的朋友,可以略去压缩的步骤,也可以不只用长连接的形式。
    工作中,往往对程序设计的要求并不高,只要能用就行。
    那么,楼主可以参考一下我的一篇blog,
    这篇blog的功能就比较简单了,虽然是传输小文件的,
    但,稍加改动就可以传输数据对象。
    http://blog.csdn.net/preferme/archive/2009/10/31/4752031.aspx