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

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

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

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

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

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

你可能感兴趣的:(关于session没有关掉,数据库连接池被占用的问题。)