Mybatis 回滚无效 - Mybatis报错-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

Mybatis 回滚无效 - Mybatis报错

montos 2020-06-03 21:54:09 75

"<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,代码结束时故意回滚,但在仍然提交了数据!如果我要控制事务应该要怎么写呢?



"
Java 数据库连接 mybatis
分享到
取消 提交回答
全部回答(1)
  • montos
    2020-06-03 22:28:44

    "数据表需要设置为InnoDB######

    不是对session rollback.而是对transaction rollback

    你参考下我的代码片段:

    "
    0 0
数据库
使用钉钉扫一扫加入圈子
+ 订阅

分享数据库前沿,解构实战干货,推动数据库技术变革

推荐文章
相似问题
推荐课程