对于日志记录信息,需要用于连接JNDI的URL

时间:2016-07-27 17:48:01

标签: java jdbc jndi

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

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,至少进行调试?

1 个答案:

答案 0 :(得分:1)

BasicDataSourceOracleDataSource(可能还有其他包装器)实际上是直接从DataSource获取URL信息的唯一方法。但正如评论中描述的奇闻趣事一样,您可以从您的连接中获取此信息:

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