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