2 skydream1 skydream1 于 2016.02.22 15:09 提问

Java里重新封装的接口为什么会报错呢?

小白一枚,在搞数据库这一块时,对数据的连接与操作想写个类封装进去,执行代码时,调用
ResultSet st=db.execQuery("select * from b.TAB_TRAN_LOG fetch first 10 rows only");
while(st.next())
{
System.out.println(st.getString("Trn_CODE"));
}
时就会报错,感觉是类的ResultSet没有传出来,报错是Exception in thread "main" com.ibm.db2.jcc.b.SqlException: [jcc][t4][10120][10898][3.50.152] 操作无效:已关闭 result set。 ERRORCODE=-4470, SQLSTATE=null
新创建的类里只是简单的调用execQuery

4个回答

beacon_2011
beacon_2011   Rxr 2016.02.22 15:15

$ db2set DB2_RESTRICT_DDF=true

xionglangs
xionglangs   Rxr 2016.02.22 15:27
skydream1
skydream1   2016.02.22 15:46

似乎不是数据库的问题哦,因为如果我直接调用的话是可以正确返回数据的,但是如果我把这个execQuery封装在一个类里时,再次调用,然后就会报错了咯。

skydream1
skydream1   2016.02.22 15:52

谢谢咯,找到原因了,在类里提前把连接和Statement关闭了。似乎Connection 和Statement 关闭后,造成ResultSet自动关闭了,代码里是没有主动调用ResultSet的close方法的

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!