gpt4 book ai didi

java - 连接到 oracle 数据库时显式选择 jdbc 驱动程序

转载 作者:搜寻专家 更新时间:2023-10-31 20:04:08 26 4
gpt4 key购买 nike

我正在开发一些软件,有时需要连接到 oracle 8.1.7 数据库,有时需要连接到 oracle 10g 数据库才能执行一些查询。

当连接到 8.1.7 数据库时,我需要使用 ojdbc14.jar 驱动程序,以及用于 10g 数据库的 ojdbc6.jar 驱动程序。

当这两个驱动程序都在类路径中时,自动驱动程序选择似乎不够智能,无法选择正确的驱动程序,有什么方法可以在我的代码中指定首选哪个驱动程序?

我目前没有使用任何连接池或类似的抽象,但如果需要的话引入类似的东西不是问题。

最佳答案

如果你没有使用 dbcp 那么你可以这样做

class Test 
static Driver driver5;
static Driver driver6;

static void init() throws Exception {
ClassLoader cl5 = new URLClassLoader(new URL[] { new URL("file:lib/ojdbc15.jar") });
driver5 = (Driver) cl5.loadClass("oracle.jdbc.driver.OracleDriver").newInstance();
ClassLoader cl6 = new URLClassLoader(new URL[] { new URL("file:lib/ojdbc6.jar") });
driver6 = (Driver) cl6.loadClass("oracle.jdbc.driver.OracleDriver").newInstance();
}

public static void main(String[] args) throws Exception {
Properties props = new Properties();
props.put("user", "user");
props.put("password", "pwd");
String url = "jdbc:oracle:thin:@host:1529:sid";
Connection conn5 = driver5.connect(url, props);
Connection conn6 = driver6.connect(url, props);
}

注意 ojdbc15.jar 和 ojdbc6.jar 不应该在 java 类路径中,它们对于应用程序类加载器应该是不可见的

关于java - 连接到 oracle 数据库时显式选择 jdbc 驱动程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14359084/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com