如何从java.sql.Connection获取数据库URL?

62

对于给定的Connection实例,如何找到连接数据库所使用的URL?是否在Connection.getClientInfo()方法返回的Properties中?请注明您需要我提供更清晰的描述,感谢。

4个回答

105

有没有办法在没有元数据的情况下获取它,因为如果连接失败,这段代码就无法工作。 - Bilgehan
你认为如果无法连接到服务器但仍能从服务器获取信息,这是否有意义? - Ken Chan
这取决于您的需求。在运行时,我只需要访问数据源URL信息。DriverManagedDatasource有getUrl方法,并且可以在没有任何服务器请求的情况下提供此信息。 - Bilgehan

30

我相信您可以使用从Connection获取的DatabaseMetaData对象,然后获取URL。尝试使用以下代码:

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

3
在连接对象内部,您有一个类型为DatabaseMetaData的对象,它包含有关数据库的大量信息。
Lucas de Oliveira给出了一个很好的代码示例。
这是该对象的文档: 接口DatabaseMetaData

欢迎来到SO。请考虑添加一个DatabaseMetaData javadoc的链接。 - dic19

-1

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

请告诉我这是否解决了您的问题。


2
欢迎。OP正在询问数据库的URL,而不是密码。 - Mark Chorley

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接