gpt4 book ai didi

java - 相同数据源的不同

转载 作者:太空宇宙 更新时间:2023-11-04 08:34:43 25 4
gpt4 key购买 nike

我正在编写一个从数据库(可以是 oracle 或 mysql)读取信息的类。我正在使用 javax.sql.DataSource 和如下代码:

ctx = new InitialContext();
DataSource ds = (DataSource) ctx.lookup("java:personalDS");
Connection conn = ds.getConnection();

之后我需要执行一些查询,但如果我使用 oracle 或 mysql ds,它们必须不同。 xml 文件将包含:

<driver-class>oracle.jdbc.driver.OracleDriver</driver-class>

<driver-class>com.mysql.jdbc.Driver</driver-class>

我想写一些类似的东西

if (ds.getDriver().contains("mysql") {...}
else if (ds.getDriver().contasins("Oracle") {...}

但是 getDriver 方法不存在......同样从上下文来看,我不明白如何“获取”我的资源的驱动程序类属性。

你有什么建议吗?

谢谢

最佳答案

您可以使用 DatabaseMetaData 类。

http://download.oracle.com/javase/1.4.2/docs/api/java/sql/DatabaseMetaData.html

我不确定是否所有供应商都实现了这一点,但这就是此类的目的。您可以从底层连接对象获取它的句柄。

dataSource.getConnection().getMetaData()

关于java - 相同数据源的不同 <driver-class>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6665567/

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