我使用以下标准创建数据源:
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,至少用于调试?
最佳答案
BasicDataSource
和 OracleDataSource
(可能还有其他包装器)实际上是直接从 DataSource 获取 URL 信息的唯一方法。但正如评论中所描述的,您可以从您的连接中获取此信息:
Connection conn = ds.getConnection();
String url = conn.getMetaData().getURL();
关于java - 对于日志信息,需要用于 JNDI 连接的 url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38619925/