开发者社区> 问答> 正文

Mybatis 回滚无效:报错

public class TestOne {

    private static SqlSessionFactory sqlSessionFactory;
    private static Reader reader;
    private static final String CONFIG = "mybatis.cfg.xml";

    static{
        try{
            //第一步读取配置文件信息
            reader = Resources.getResourceAsReader(CONFIG);
            //第二步通过 SqlSessionFactoryBuilder 实例化 SqlSessionFactory
            sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
        }catch(Exception e){
            e.printStackTrace();
        }
    }

    public static void main(String args[]){
        //第三步获取操作数据库对象SqlSession
        SqlSession session = sqlSessionFactory.openSession(false);
        try {
            Member user = new Member();
            user.setName("VitoHuang");
            user.setAge(24);
            user.setSex(0);
            //第四步CRUD
            session.insert("Member.create",user);
            //第五步提交事务
            session.rollback();
            //session.commit();
        }catch (Exception e){
            session.rollback();
            e.printStackTrace();
        } finally {
            //第六步关闭连接
            session.close();
        }
    }

最近在学习mybatis,但是发现我把sqlSessionFactory.openSession(false)设置未false,代码结束时故意回滚,但在仍然提交了数据!如果我要控制事务应该要怎么写呢?



展开
收起
kun坤 2020-06-14 15:52:17 478 0
1 条回答
写回答
取消 提交回答
  • 数据表需要设置为InnoDB######

    不是对session rollback.而是对transaction rollback

    你参考下我的代码片段:

    2020-06-14 15:52:46
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Java Spring Boot开发实战系列课程【第6讲】:Spring Boot 2.0实战MyBatis与优化(Java面试题) 立即下载
低代码开发师(初级)实战教程 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载