Druid连sqlite,能查询出结果,却报ResultSet closed异常 。
百度了一圈倒是碰到有人说类似的 ResultSet is closed 的错误的,没找到解决方案,但可以确定是druid的问题。而且是druid的一个bug。
<!-- 打开PSCache,是否缓存preparedStatement,也就是PSCache。 PSCache对支持游标的数据库性能提升巨大,比如说oracle。 在mysql5.5以下的版本中没有PSCache功能,建议关闭掉。作者在5.5版本中使用PSCache,通过监控界面发现PSCache有缓存命中率记录,该应该是支持PSCache。 -->
<!--注:发现一个错误,Druid连sqlite,ResultSet closed异常,如果出现这个错误,注释掉这2项-->
<property name="poolPreparedStatements" value="true" />
<property name="maxPoolPreparedStatementPerConnectionSize" value="20" />
直接将上面的这2个属性注释掉,这个问题解决。
把poolPreparedStatements设置成false,或者注释掉;
maxOpenPreparedStatements也注释掉。即可解决,如果是用jdbc的写法,那么设置下
dp.setMaxOpenPreparedStatements(0) , 就ok了。