Mybatis中执行删除操作手动提交的Sqlsession为空,当我改成自动提交又执行成功

Mybatis中执行删除操作手动提交的Sqlsession为空,当我改成自动提交又执行成功,不知道什么原因,求大能们解答
主要代码:

img

img

主函数:

img

运行结果:

img


单设置为自动提交时,delete语句又可以执行成功
如下:

img


运行结果:

img

你成员变量中 sqlSession 并没有赋值呀

img

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 你可以看下这个问题的回答https://ask.csdn.net/questions/7564472
  • 这篇博客也不错, 你可以看下Mybatis中获得SqlSession对象空指针的解决办法!
  • 除此之外, 这篇博客: Mybatis中 设置sqlSession自动提交中的 mybatis中设置自动提交 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:

    正常情况,获取sqlSession对象,更新,删除,插入的操作需要手动commit提交事务
    例如:

    
        //增删改需要提交事务,否则数据库不会插入
        @Test
        public void addUser(){
            SqlSession sqlSession = MybatisUtils.getSqlSession();
            UserMapper mapper = sqlSession.getMapper(UserMapper.class);
            int i = mapper.addUser(new User(999, "wuxinyu", "cherry918"));
    
            if (0 != i)
                System.out.println("插入成功");
    
    
            //提交事务
            sqlSession.commit();
            sqlSession.close();
    
        }
    

    在这里插入图片描述
    在这里插入图片描述
    将openSession添加参数值true 就可以自动提交事务

    在这里插入图片描述


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^