如何使用一个 JDBC 驱动程序提供多个数据库的列表

Posted

技术标签:

【中文标题】如何使用一个 JDBC 驱动程序提供多个数据库的列表【英文标题】:How to provide list of multiple databases with one JDBC driver 【发布时间】:2022-01-20 09:46:22 【问题描述】:

目前我需要编写自己的 Type 2 JDBC 驱动程序。我正在编写的产品支持 ODBC 驱动程序,我可以使用 DBEaver 通过 JDBC-ODBC 桥连接到它。通过这个桥,它表明存在多个数据库,并且我正在成功运行 sql 查询。 为了创建 JDBC 驱动,我实现了 4 个接口 java.sql.Driver、java.sql.Connection、java.sql.Satement、java.sql.ResultSet。但是我找不到让驱动程序同时提供有关多个数据库的信息的方法。我正在使用 jdk1.6.0_16。如何让我的 JDBC 驱动程序为多个数据库提供服务?

【问题讨论】:

【参考方案1】:

您可以采取的最佳方法是创建不同的connections,使用不同的用户名、密码和/或连接属性,为您需要访问的每个数据库创建一个,并可能将从这些不同架构中获得的信息组合到您的 Java 应用程序。

作为替代方案,在某些数据库系统中,您可以授予架构/用户对不同架构(甚至不同数据库)中数据库对象的权限:因此,您可以向一个架构授予必要的权限并使用该架构访问其他人。请注意这种超级模式方法可能带来的安全隐患。

【讨论】:

以上是关于如何使用一个 JDBC 驱动程序提供多个数据库的列表的主要内容,如果未能解决你的问题,请参考以下文章

JDBC

如何使用普通 JDBC 获取目标表的名称和外键列的列

使用 JDBC 取消 SQL 语句

如何使用 Spring 管理具有不同 jdbc(或休眠?)的多个“运行时注意到”数据库连接?

Spring 集成:Jdbc-Inbound-adapter DB Lock

在 JDBC 中获取列名