java – 使用不同的jdbc驱动程序连接到多个数据库
我需要编写一个基于守护进程的
java进程(不是基于Web的),它将连接到Oracle 10G数据库,从中读取一些数据,然后连接到SQL Server数据库并将数据写入表.
听起来很简单,但我对此有几个疑问. >我需要有两个jdbc驱动程序,一个用于连接Oracle数据库,另一个用于连接到sql server数据库. sql server jdbc驱动程序是jtds jdbc驱动程序(http://jtds.sourceforge.net/),对于Oracle我将使用标准的oracle jdbc驱动程序.我可能会遇到类路径中可用的两个驱动程序的任何问题吗? 编辑 好吧,我试图整理一个快速的设计解决方案.见下图 我认为我遇到的问题是如何提交.这是处理流程 > InvoiceBD从工厂类获取Oracle连接,并调用InvoiceUploadDAO.readData将Oracle连接对象传递给它. InvoiceBD提交Oracle连接. 或者如果出现问题,两个连接对象都会回滚. 那个听起来是对的吗? 谢谢 解决方法
不太可能. DriverManager.getConnection方法实际上将连接的构造委托给在其中注册的所有驱动程序.只有识别JDBC URL中的协议的驱动程序才会返回连接. JDBC规范声明:
对于jTDS和Oracle(瘦)驱动程序,协议格式不同,因此,您永远不会遇到问题.但是,请记住不要放置同一驱动程序的多个版本.
您正在寻找一个DataSource. DataSources可以在Java EE环境中使用,而不是在Java SE应用程序中使用.但是,您可以构建自己的DataSource或类似的类;您不需要实现DataSource接口本身,但您可以执行类似的操作.在您的上下文中,您的ConnectionManager类将通过接受区分要连接的数据库的参数来承担DataSource的角色;您可以考虑使用连接池,以防您需要连接池(如果您只需要一个连接到数据库,则不太可能). 您也可以采用@ duffymo构建DAO类的方法,尽管它更适合SQL查询不同的情况. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |