如何在同一个应用程序中使用多个JDBC驱动程序?

时间:2013-02-18 21:07:21

标签: java jdbc

据我所知,只要我执行

Class.forName("net.sourceforge.jtds.jdbc.Driver");

我初始化应用程序以全局使用JTDS SQL Server驱动程序

java.sql.DriverManager.getConnection(url, user, password);

之后返回SQL Server连接。

但是,如果我想在同一个函数中使用多个不同的数据库引擎,获得JTDS SQL Server连接,然后,例如PostgreSQL连接,然后再次使用新的JTDS SQL Server连接,该怎么办?

2 个答案:

答案 0 :(得分:9)

你误解了。当您使用Class.forName()加载驱动程序类时,该驱动程序会向驱动程序管理器注册。您可以使用任意数量的驱动程序执行此操作。

getConnection()的第一个参数是一个唯一标识用于该连接的驱动程序的URL。

但是,我建议您使用连接池(例如Apache DBCP),而不是直接从驱动程序管理器获取连接。这将允许您根据需要获得连接,并将提供一些其他功能,例如,如果您忘记将连接返回到池,则会发出警告。

答案 1 :(得分:1)

您需要使用DataSource。为每种类型的连接配置DataSource,并且每次都使用适当的DataSource(例如,通过适当的DAO