Spring / Hibernate适用于需要异构数据库连接的用例吗?

时间:2011-05-25 13:14:39

标签: java sql-server oracle hibernate spring

我有一个Oracle数据库,每周运行一次PL / SQl作业,使用Oracle数据库链接将数据从Oracle数据库中的表复制到另一个Oracle数据库。两个系统都在Unix / Solaris上运行。该作业通过Unix Cron工具进行安排和执行。

现在,远程计算机正从UNIX迁移到具有MSQL Server数据库的Windows平台。我一直在研究使用Oracle数据库链接从UNIX连接到将在Windows平台上运行的MSSQL Server数据库的可能性。这是有可能的,但它看起来像是有很多摆弄让它工作,并没有很多关于如何实现它的信息。

我想到的另一个解决方案是将进程实现为每周运行的Java守护程序进程。它所做的只是从一些表连接到Oracle数据库读取数据,连接到MSSQL Server数据库并运行一些插入命令。我想我需要两种驱动程序 - 即Oracle的jdbc和MSSQL Server的jdbc。

Spring是否提供任何可以使上述内容更容易实现和维护的工具? (特别是多个驱动程序和要求的调度部分)

Hibernate是否适合管理多个数据库连接,还是过度杀伤?

随意提出更好的解决方案:)

谢谢

2 个答案:

答案 0 :(得分:2)

这听起来像是Spring Batch

的完美应用

您应该查看这些页面,看看它是什么:

Spring Batch将很乐意接受具有不同驱动程序的不同数据源,但您可能必须提供一些RowMapper个对象来创建临时对象。

答案 1 :(得分:2)

Spring有广泛的support for scheduling tasks

通过不同的驱动程序对多个数据库运行查询是一项基本的JDBC功能; Spring并不是真正相关的 - 除非你希望它发生在单个(分布式)事务中。 Spring会support those via JTA and XA