Tomcat连接池使用JDBC附加功能的问题

usa112233 2009-04-10 12:31:14
我使用的是INFORMIX数据库,有时需要使用INFORMIX JDBC中附加的功能,如IfxStatement的getSerial()方法,可是执行 语句

int iid=((com.informix.jdbc.IfmxStatement)stmt).getSerial();
时会出错,org.apache.tomcat.dbcp.dbcp.DelegatingStatement cannot be cast to com.informix.jdbc.IfmxStatement

如果是用
ctx=new InitialContext();
ds=ctx.lookup(...);
conn=ds.getConnection();
stmt=conn.createStatement();
做的就会出现上面的错误,
但用
Class.forName("com.informix.jdbc.IfxDriver");
conn=DriverManager.getConnection(url);
stmt=conn.createStatement();
做就不会出错,
请教一下,难道配置数据源,JDBC驱动还要另外做些什么吗?
...全文
120 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
hhk1973 2009-04-21
  • 打赏
  • 举报
回复
数据源配置中有个参数accessToUnderlyingConnectionAllowed,设为true就可以使用底层的类了.
Connection conn = ds.getConnection();
Connection dconn = ((DelegatingConnection) conn).getInnermostDelegate();
...
conn.close()
usa112233 2009-04-16
  • 打赏
  • 举报
回复
还有人吗?
sjkof 2009-04-10
  • 打赏
  • 举报
回复
org.apache.tomcat.dbcp.dbcp.DelegatingStatement cannot be cast to com.informix.jdbc.IfmxStatement
这个是说不能转换
mumu_java 2009-04-10
  • 打赏
  • 举报
回复
com.informix.jdbc.IfmxStatement这个类需要放到你的lib库中。如果没有当然报错。
goosman 2009-04-10
  • 打赏
  • 举报
回复
(com.informix.jdbc.IfmxStatement)stmt
你这个强制类型转换的时候出的错,你的stmt的类型是org.apache.tomcat.dbcp.dbcp.DelegatingStatement
和com.informix.jdbc.IfmxStatement没有继承关系,怎么能转换?

看一看api,如果提供方法转换,就使用方法,显然这里不能强转
ouyangqinxin 2009-04-10
  • 打赏
  • 举报
回复
jdbc没有加载好!
quanjinzhang 2009-04-10
  • 打赏
  • 举报
回复
是不是你配置的tomcat的jndi数据源的驱动有问题啊?
浴火涅磐 2009-04-10
  • 打赏
  • 举报
回复
顶三楼
usa112233 2009-04-10
  • 打赏
  • 举报
回复
主要问题在不用连接池就没问题,用了连接池就不行
vincent201201 2009-04-10
  • 打赏
  • 举报
回复
配置连接池的问题吧。关注……

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧