mybatis中做批量添加怎么做事务。如果一条失败其他全部回滚
谢谢

解决方案 »

  1.   

    楼主,,只需把几个sql语句写一块,然后写上一句commit;就行了,要是一条失败全部回滚那就在最前面那一条sql语句前面设置一个回滚点,然后rollback to 到你设置的回滚点就好了,
      

  2.   

    在业务service怎么获取到你所说的。我也想过设置保存点关键怎么样获取到,刚开始设置提交为false..
      

  3.   

    Configuration cf = new Configuration().configure();
    SessionFactory sessionFactory=cf.buildSessionFactory();
    Session session=sessionFactory.openSession();
    Transaction tr=session.beginTransaction();
    for(int i=0;i<list.size;i++)
    {
       //这里执行数据操作
       if((i+1)%20)
       {
          session.flush();
          session.clear();      
         //这里清除session缓存
       }
    }
    tr.commit();
    session.flush();
    session.clear();
    session.close();
      

  4.   

    如果回滚,就在for循环里面try抓取异常,然后调用事物回滚。
      

  5.   

      里面好多包,我每个试了下都没用,编译不通过  mybatis能这样用吗??
      

  6.   

    事务先 begin  然后执行(循环的操作也要放在事务中间,不要循环事务) 然后事务 commit ; that's all
      

  7.   

    加这个  @Transactional(rollbackFor = Exception.class)
    配置文件在配置下