Java+Mysql如何处理事务?
以前没怎么研究过Mysql数据库,但是这段时间由于项目需要用到了Mysql数据库。说说目前的情况,数据库链接是通过JDNI获取。在Oracle数据库下这些代码是没有问题的,但是迁移到Mysql数据库下所有的事务都失效了,Mysql建表时也添加了InnoDB,不知道是不是Mysql对于事务处理还有别的需要特别主意的地方?下面是事务处理的代码:
UserTransaction tran = null;
try {
tran = Trans.getUserTransaction();
tran.begin();
UserDaoImplex.update(user);
UserDaoImplex.insert(user);
tran.commit();
} catch (Exception e) {
tran.rollback();
e.printStackTrace();
}
getUserTransaction()方法实现:
Java MySQL 事务
public static UserTransaction getUserTransaction() throws NamingException,SystemException {
InitialContext ctx = new InitialContext();
Object txObj = ctx.lookup("java:comp/UserTransaction");
UserTransaction utx = (UserTransaction)txObj;
if (utx != null){
utx.setTransactionTimeout(60*20); // 设置事务超时间
return utx;
}else{
return null;
}
}
补充:Java , Java EE