【问题标题】:For logging information, want the url used for connection of JNDI对于日志信息,需要用于连接 JNDI 的 url
【发布时间】:2016-07-27 17:48:01
【问题描述】:

我使用以下标准创建数据源:

private DataSource ds;      
Context envContext = (Context) initContext.lookup("java:/comp/env");
ds = (DataSource)envContext.lookup("jdbc/myDB");

我希望将连接 url 写入日志文件。

System.out.println(ds);

上述内容不会到期。我考虑过投射到 BasicDataSource

(ds instanceof BasicDataSource);

获取信息,因为 BDS 有 getUrl() 方法。这违背了间接性,因为并非所有连接都是 BasicDataSource 并且应该避免?应该如何打印用于数据源的 url,至少用于调试?

【问题讨论】:

  • 假设你使用javax.sql.DataSource,你可以使用ds.getConnection().getMetaData().getURL()

标签: java jdbc jndi


【解决方案1】:

BasicDataSourceOracleDataSource(可能还有其他包装器)实际上是直接从数据源获取 URL 信息的唯一方法。但正如 cmets 中所描述的 gonzo,您可以从您的连接中获取此信息:

Connection conn = ds.getConnection();
String url = conn.getMetaData().getURL();

【讨论】:

    猜你喜欢
    • 2020-12-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-06
    • 2021-10-26
    • 2023-03-29
    • 1970-01-01
    相关资源
    最近更新 更多