Mybatis 事务问题,急 请高手看下
我使用mybatis3.0.5 进行事务控制时,当第一个数据插入成功,第二个数据插入失败时,做了回滚,但是第一条数据还是成功了 没有回滚,请高手看下是怎么回事。谢谢各位了以下是我的配置及代码
<environments default="MySQL">
<environment id="MySQL">
<transactionManager type="JDBC" />
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql:/" />
<property name="username" value="" />
<property name="password" value="" />
</dataSource>
</environment>
</environments>
SqlSession session = null;
try {
String resource = "ibatisconfig/SqlMapConfig.xml";
Reader reader = Resources.getResourceAsReader(resource);
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(reader);
session = factory.openSession(ExecutorType.BATCH, false);
IAccountMapper accountMapper = session.getMapper(IAccountMapper.class);
Account account = new Account();
account.setId(123);
account.setName("zhangsan");
accountMapper.addAccount(account);
IUserMapper userMapper = session.getMapper(IUserMapper.class);
User user = new User();
user.setUserName("zhangsan");
user.setPassWord("123456");
userMapper.add(user);
session.commit();
} catch (Exception e) {
e.printStackTrace();
session.rollback();
} finally {
session.close();
}
--------------------编程问答-------------------- 大虾们 看看 为什么回滚不了 --------------------编程问答-------------------- 大虾们 急啊 看看 怎么回事 多谢了 --------------------编程问答-------------------- 别费劲了,控制不了事务 --------------------编程问答-------------------- 看好多资料说这样可以控制事务 但我操作的时候 就是控制不了 那mybatis 是怎样控制事务的了?
--------------------编程问答-------------------- 同命相连呀,我也是,不知怎么的 --------------------编程问答-------------------- 事物交给spring控制 --------------------编程问答-------------------- 关闭掉自动提交的就可以了
//不自动提交事务
session.getConnection().setAutoCommit(false); --------------------编程问答-------------------- 异常被你捕获了,回滚不了的 --------------------编程问答-------------------- 需要手动开启jdbc事务管理。
补充:Java , Java EE