java - 在建立数据源连接之前获取 URL 值
问题描述
给定一个上下文文件:
<?xml version="1.0" encoding="UTF-8"?>
<Context antiJARLocking="true" path="/scum">
<Resource name="jdbc/MyApp"
auth="Container"
type="javax.sql.DataSource"
username="username"
password="password"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://mysql.server.com:8080/DB"
validationQuery="select 1"
maxActive="20"
maxIdle="2"/>
</Context>
我可以使用以下代码获取资源的 url:
Context xmlContext = (Context) ic.lookup("java:comp/env");
DataSource dataSource = (DataSource) xmlContext.lookup("jdbc/MyApp");
Connection connection = dataSource.getConnection();
String url = connection.getMetaData().getURL();
但是,如果连接失败,则没有元数据,不幸的是,没有 url。如何在不连接数据源的情况下获取 url?
解决方案
DataSource
只是一个界面,你什么都得不到。因此,您可以调试DataSource
以检查它实际上是什么实现类。
推荐阅读
- python - 如何在python中检测肘部和膝盖
- reactjs - 我想使用类和 onclick 函数更改文本颜色,但 onclick 函数不起作用?
- python - 熊猫:更改选定列中的值
- python - 在 Python 中读取数字 - 'str' 对象不能解释为整数
- sql - 如何编写 sql 查询以根据年份对行进行分组
- python - 为什么在创建自定义环境时使用 OpenAI Gym 的 Env 类而不是什么?
- date - 我想使用 odoo 中的搜索 orm 比较日期和日期与日期顺序
- mysql - 用于排序和获取唯一计数的 SQL 查询
- c - 我的 switch 语句不能正常工作
- asp.net-mvc - 在 Kendo Grid Client Template MVC 中传递多个参数