【问题标题】:How to get database url from java.sql.Connection?如何从 java.sql.Connection 获取数据库 url?
【发布时间】:2011-08-08 19:17:43
【问题描述】:

对于给定的Connection 实例,我如何找出Connection 用于连接数据库的url?是在Connection.getClientInfo() 方法返回的Properties 中的某个地方吗?

如果您需要我提供更清晰的描述,欢迎所有 cmets。谢谢

【问题讨论】:

    标签: java jdbc connection-string


    【解决方案1】:

    在 Connection 对象中,有一个 DatabaseMetaData 类型的对象,它包含很多关于数据库的信息。

    Lucas de Oliveira 为您提供了一个很好的代码示例。

    这里是对象的文档: Interface DatabaseMetaData

    【讨论】:

    • 欢迎来到 SO。请考虑添加指向 DatabaseMetaData javadoc 的链接。
    【解决方案2】:

    我相信您可以使用 Connection 中的 DatabaseMetaData 对象,然后获取 URL。试试:

    DatabaseMetaData dmd = connection.getMetaData();
    String url = dmd.getURL();
    

    【讨论】:

      【解决方案3】:

      connection.getClientInfo() 包含与连接相关的所有详细信息。它返回一个属性对象。您可以检索“密码”属性的值以获取用于连接对象的密码。

      如果这能解决您的问题,请告诉我。

      【讨论】:

      • 欢迎。 OP 要求的是数据库 URL,而不是密码
      【解决方案4】:

      Connection 具有 getMetaData() 以返回 DatabaseMetaDataDatabaseMetaDatagetURL() 来返回此 DBMS 的 URL。

      【讨论】:

      • 有没有办法在没有元数据的情况下获取它,因为如果连接失败,此代码将不起作用
      • 您认为如果您无法连接到服务器但也可以从服务器获取信息是否有意义? .....
      • 这取决于您的需要。我只需要在运行时访问数据源 url 信息。DirverManagedDatasource 具有 getUrl 方法并且无需任何服务器请求即可提供此信息
      猜你喜欢
      • 2013-01-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-18
      • 2016-07-20
      • 2014-03-13
      相关资源
      最近更新 更多