开发者社区> 问答> 正文

Mybatis 回滚无效-mybatis报错

"<pre class=""brush:java; toolbar: true; auto-links: false;"">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();
    }
}</pre> 

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



"

展开
收起
montos 2020-06-01 17:38:16 637 0
1 条回答
写回答
取消 提交回答
  • "数据表需要设置为InnoDB######

    不是对session rollback.而是对transaction rollback

    你参考下我的代码片段:

    "
    2020-06-01 17:38:26
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

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