栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

无法将ClassCastException数据源强制转换为javax.sql.ConnectionPoolDataSource

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

无法将ClassCastException数据源强制转换为javax.sql.ConnectionPoolDataSource

作为最终用户,您永远不必

ConnectionPoolDataSource
直接使用Direct。它旨在用作物理连接的工厂(
PooledConnection
)。那
PooledConnection
被保留在连接池中。当执行a时
DataSource.getConnection
,数据源将从
PooledConnection
池中检出a
,并
PooledConnection.getConnection()
以最终用户的身份向您返回获得的逻辑连接,并在
Connection
关闭该逻辑时将物理连接返回到池中。

所以构造是

User -- uses --> DataSource (with connectionpooling) -- uses --> ConnectionPoolDataSource

要么

ConnectionPoolDataSource --> creates PooledConnection --> DataSource --> returns Connection --> User

a的使用

DataSource
独立于是否
DataSource
提供连接缓冲的事实(它对您应该透明)。

换句话说,您的代码应更改为:

protected static Connection getConnection() throws NamingException, SQLException {    InitialContext cxt = new InitialContext();    String jndiName = "java:/comp/env/jdbc/MyDBHrd";    DataSource dataSource = (DataSource) cxt.lookup(jndiName);    Connection conn = dataSource.getConnection();    return conn;}


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/399285.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号