在业务层接口实现类只创建了一个sqlsession全局对象,在业务层每个操作方法中都调用了这个对象,在第一次调用后容易更改sqlSession对象,导致对象被关闭,随后在其他方法继续调用这个对象sqlSession已经被关闭了,不会创建新的sqlSession,只会在类加载时创建唯一一次,所以才会报执行人已经被关闭的错误。
这个问题的解决方法:在每个操作数据库的方法中都去定义一个SQLSession工厂对象。
那为什么每个操作数据库的方法中都去定义一个SQLSession工厂对象。就不会关闭呢