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

Java 对于日志信息,需要用于连接JNDI的url,java,jdbc,jndi,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); 上述费用将不予支付。我想把它转换成源代码 (ds instanceof BasicDataSo

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

private DataSource ds;      
Context envContext = (Context) initContext.lookup("java:/comp/env");
ds = (DataSource)envContext.lookup("jdbc/myDB");
我希望将连接url写入日志文件

System.out.println(ds);
上述费用将不予支付。我想把它转换成源代码

(ds instanceof BasicDataSource);

获取信息,因为BDS具有getUrl()方法。这与间接性相反,因为不是所有连接都是源连接,应该避免吗?如何打印用于数据源的url,至少用于调试?

BasicDataSource
OracleDataSource
(可能还有其他包装器)是直接从数据源获取url信息的唯一方法。但正如gonzo在评论中所描述的,您可以从您的连接中获得以下信息:

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

假设您使用的是
javax.sql.DataSource
,则可以使用
ds.getConnection().getMetaData().getURL()