关于session没有关掉,数据库连接池被占用的问题。

    之前一直用的Mybatis在与Spring整合中,可以不用手动关闭session。也没有遇到数据库连接池被占用的问题。

    现在用mybatis和公司自己封装的JDBC框架进行数据库操作。在商城查询点卡信息的时候,页面刷新多次,即查询了多次。然后数据加载就开始超时。然后跑单元测试,没有问题。查看源码,发现在底层把statement和resultSet在finallyl里杀掉了。以为对该次查询已经做了处理。

    检查c3p0配置,发现查询的次数正好等于最大链接的个数,再访问就超时。认为就是连接池被占用的问题,跑测试类不存在连接池的问题。

最后,在service层在finally中session.close();问题解决。

公司的底层关闭的statement和resultSet并没有关闭connection,这样就需要手动关闭session。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容