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

Iva*_*van 7 java jdbc

据我所知,只要我执行

Class.forName("net.sourceforge.jtds.jdbc.Driver");
Run Code Online (Sandbox Code Playgroud)

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

java.sql.DriverManager.getConnection(url, user, password);
Run Code Online (Sandbox Code Playgroud)

之后返回SQL Server连接.

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

par*_*fal 11

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

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

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