进行一次升级, 对应版本为:mybatis:3.5.7 druid:1.2.6 mybatis-spring:2.0.6 spring系列:5.0.2.RELEASE 使用的数据库为oracle 升级后使用游标的地方报关闭的语句,关闭的连接 
我对比新旧版本:
新版本 
旧版本 
发现新版本连接是没有复用的,感觉是开了PSCache后,执行完再次连接时连接不上。我把PSCache关掉就不会报这个, 
但感觉不太好。想请教下各位大佬,有没有其他的解决方案,拜谢
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
遇到升级后游标关闭或连接管理的问题,通常与数据库连接池配置、MyBatis的设置以及Spring框架的事务管理有关。您提到的PSCache(PreparedStatement Cache)是MyBatis用于缓存预编译的SQL语句以提高性能的一个特性。当开启时,确实可能因为连接管理不当导致问题。以下是一些建议来解决您的问题,同时尽量保持性能优化:
调整Druid连接池配置:
initialSize、minIdle、maxActive等参数,确保有足够的初始化连接和最小空闲连接数。maxWait时间,避免在连接池耗尽时无限等待。MyBatis配置优化:
mybatis.configuration.cache-enabled=true并细粒度地控制哪些映射文件或语句使用缓存。通过<cache/>标签或在Mapper接口的方法上使用@CacheNamespace注解来控制。mybatis.configuration.useCursorFetch=true,这有助于处理大量结果集时的内存消耗问题,虽然它与直接的连接问题关系不大,但对性能有影响。Spring事务管理:
@Transactional注解时,注意事务的边界,确保资源在事务结束时被正确关闭。数据库驱动兼容性:
日志分析:
逐步排查:
如果以上建议仍不能解决问题,建议提供更详细的错误信息或日志,以便进行更深入的分析。