8

据我了解,一旦我执行

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 连接,该怎么办?

4

2 回答 2

12

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

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

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

于 2013-02-18T21:16:04.113 回答
1

你需要使用DataSource. DataSource为每种类型的连接配置一个并且每次都使用适当的DataSource(例如通过适当的DAO

于 2013-02-18T21:08:35.007 回答