仅仅提供一个思路:
首先确保你的函数体中出现错误之前没有关闭ResultSet
然后,如果你用的是线程池,并且条件是如果线程存在则使用,线程不存在才新建的逻辑
那么由于每一次close都是将连接还给线程池而非销毁,每一次获取连接都是从线程池获取,可能是你拿到了已经关闭资源的线程
所以可以先使用原始JDBC进行尝试