我使用以下标准创建数据源:
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,至少进行调试?
答案 0 :(得分:1)
BasicDataSource
和OracleDataSource
(可能还有其他包装器)实际上是直接从DataSource获取URL信息的唯一方法。但正如评论中描述的奇闻趣事一样,您可以从您的连接中获取此信息:
Connection conn = ds.getConnection();
String url = conn.getMetaData().getURL();