奋斗男孩12138 2021-12-24 16:44 采纳率: 50%
浏览 43
已结题

org.apache.ibatis.executor.ExecutorException:Executor was closed 报错

在业务层接口实现类只创建了一个sqlsession全局对象,在业务层每个操作方法中都调用了这个对象,在第一次调用后容易更改sqlSession对象,导致对象被关闭,随后在其他方法继续调用这个对象sqlSession已经被关闭了,不会创建新的sqlSession,只会在类加载时创建唯一一次,所以才会报执行人已经被关闭的错误。

这个问题的解决方法:在每个操作数据库的方法中都去定义一个SQLSession工厂对象。

那为什么每个操作数据库的方法中都去定义一个SQLSession工厂对象。就不会关闭呢

就是如果是创建sqlsession全局对象从数据库中取得对象展示在页面上,但是刷新页面后就会报sqlsession对象关闭的错误,但是如果sqlsession对象不是全局对象,而是每个方法都定义一个新的sqlsession对象刷新页面就不会报错,这是为啥这时候sqlsession对象就不会关闭,是因为他又新创建了一个sqlsession对象还是sqlsession不会关闭呢
  • 写回答

0条回答 默认 最新

    报告相同问题?

    问题事件

    • 系统已结题 1月1日
    • 创建了问题 12月24日

    悬赏问题

    • ¥15 需要写计算过程,不要写代码,求解答,数据都在图上
    • ¥15 向数据表用newid方式插入GUID问题
    • ¥15 multisim电路设计
    • ¥20 用keil,写代码解决两个问题,用库函数
    • ¥50 ID中开关量采样信号通道、以及程序流程的设计
    • ¥15 U-Mamba/nnunetv2固定随机数种子
    • ¥15 C++行情软件的tick数据如何高效的合成K线
    • ¥15 vba使用jmail发送邮件正文里面怎么加图片
    • ¥15 vb6.0如何向数据库中添加自动生成的字段数据。
    • ¥20 在easyX库下编写C语言扑克游戏跑的快,能实现简单的人机对战