据我所知,只要我执行
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连接,该怎么办?
答案 0 :(得分:9)
你误解了。当您使用Class.forName()
加载驱动程序类时,该驱动程序会向驱动程序管理器注册。您可以使用任意数量的驱动程序执行此操作。
getConnection()
的第一个参数是一个唯一标识用于该连接的驱动程序的URL。
但是,我建议您使用连接池(例如Apache DBCP),而不是直接从驱动程序管理器获取连接。这将允许您根据需要获得连接,并将提供一些其他功能,例如,如果您忘记将连接返回到池,则会发出警告。
答案 1 :(得分:1)
您需要使用DataSource
。为每种类型的连接配置DataSource
,并且每次都使用适当的DataSource
(例如,通过适当的DAO
)