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,代码结束时故意回滚,但在仍然提交了数据!如果我要控制事务应该要怎么写呢?
数据表需要设置为InnoDB######
不是对session rollback.而是对transaction rollback
你参考下我的代码片段:
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。