gpt4 book ai didi

java - 如何找到所有可用的 JDBC 驱动程序?

转载 作者:行者123 更新时间:2023-12-02 09:08:26 24 4
gpt4 key购买 nike

我有一个库方法,可用于连接到数据库,然后使用数据库中的数据构建文档。

当他们不带参数运行此应用程序时,我想列出所有可用 sql 供应商连接。基于this question我猜它是使用 ServiceLoader 完成的但我不清楚具体如何做到这一点。

对此至关重要的是,我想获取类“com.mysql.jdbc.Driver”,并且我必须获取连接字符串语法的“jdbc:mysql:”开头。

那么,如何获取类路径中所有 JDBC 连接器的类(可选)和连接字符串开始(必需)?

最佳答案

JDBC 中没有定义自动发现驱动程序的 JDBC URL 格式的方法。

您需要自己保存 JDBC URL 格式的注册表(例如链接到一个或多个驱动程序),然后使用 ServiceLoaderDriverManager 发现可用的驱动程序并使用它来确定您可以使用哪些 URL 格式。

请注意,JDBC 允许多个驱动程序使用相同的 JDBC URL 格式(第一个成功连接的驱动程序“获胜”),并且单个驱动程序可以具有多个 JDBC URL 格式。

要发现类路径上的 JDBC 驱动程序,您可以使用

ServiceLoader<Driver> loadedDrivers = ServiceLoader.load(Driver.class);
for (Driver driver : loadedDrivers) {
// do something with Driver
}

请注意,使用 for-each 可能不是最佳解决方案。显式使用迭代器可能会更好,因为这样您就可以显式处理在特定驱动程序加载失败时抛出的 ServiceConfigurationError

或者,您可以使用

Enumeration<Driver> drivers = DriverManager.getDrivers();

并让 DriverManager 负责发现驱动程序。

关于java - 如何找到所有可用的 JDBC 驱动程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59603540/

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