sqlSessionc操作数据库增删改无效问题

增删改无效问题?

mybatis在我们进行增删改操作时,程序不报错,正常编译运行,但是数据库数据却没有出现变化,这是因为mybatis的事务默认是开启状态,在我们进行增删改操作后,没有提交事务,连接关闭后,就会进行回滚,这也就导致我们看起来没有操作成功

解决办法:

1.在我们操作完数据后,提交事务,sqlSession.commit()方法

// 获取SqlSession
try (SqlSession sqlSession = MybatisUtil.getSqlSession()) {
    // 得到UserMapper对象
    UserMapper mapper = sqlSession.getMapper(UserMapper.class);
    int i = mapper.deleteById(1);
    System.out.println(i);
    // 注意:增删改操作必须提交
    sqlSession.commit();
} catch (Exception e) {
    e.printStackTrace();
}
  1. sqlSessionFactory.openSession(ture);或者将里面参数设置为true,打开事务的自动提交功能
public class MybatisUtil {
    private static SqlSessionFactory sqlSessionFactory;

    static {
        try {
            // 获取sqlSessionFactory
            InputStream in = Resources.getResourceAsStream("mybatis-config.xml");
            sqlSessionFactory = new SqlSessionFactoryBuilder().build(in);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    /**
     * 获取sqlSession对象
     */
    public static SqlSession getSqlSession() {
        // 默认开启事物
        // 参数设置为true,则事务可以自动提交
        return sqlSessionFactory.openSession(true);
    }
}
posted @   JamieChyi  阅读(17)  评论(0编辑  收藏  举报  
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
点击右上角即可分享
微信分享提示