java - 对于日志信息,需要用于 JNDI 连接的 url

标签 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,至少用于调试?

最佳答案

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

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

关于java - 对于日志信息,需要用于 JNDI 连接的 url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38619925/

相关文章:

java - 如何在java中连接到gtalk?

从大表读取时出现 java.lang.OutOfMemoryError

java - PostgreSQL JDBC getGeneratedKeys 返回所有列

java - tomcat:目录资源安全

spring - JNDI 不适用于 HornetQ 和 tomcat

java - Java 代码或外部脚本中的 Elasticsearch 初始配置?

java - 来自父类的非终止窗口监听器

java - 确保对象的序列化正确完成

java - Spring JDBC查询特定字段的计数

java - 不在 App Server 中时伪造 JNDI