先来看看在JAVA事务的相关技术,在JAVA中有两类事务,JDBC事务和JTA事务,如果是JDBC类型的事务,则是由Connection类来控制的。如果创建一个Connection对象时,没有显示调用
setTransactionIsolation(int level) 方法,则Connection使用当前数据库默认的事务隔离级别,数据库的默认事务隔离级别可以通过相应的SQL语句进行查询,例如在Mysql数据库下可使用 select @@tx_isolation;语句查看当前数据库的事务隔离级别。
JDBC的Connection类针对事务的隔离性定义了五个隔离级别。
Connection.TRANSACTION_NONE
Connection.TRANSACTION_READ_COMMITTED
Connection.TRANSACTION_READ_UNCOMMITTED
Connection.TRANSACTION_REPEATABLE_READ
Connection.TRANSACTION_SERIALIZABLE
pubic
class
BaseServiceImp
{
static
{
TransactionFactory transactionFactory =
new
JdbcTransactionFactory();
Transaction newTransaction=transactionFactory.newTransaction(getSession().getConnection());
}
}
public
class
userServiceImp
extends
BaseServiceImp
{
public
void
doxxxxx(){
userMapper userDao=getSession().getMapper(UserMapper.
class
);
try
{
userDao.insert(xxx);
userDao.update(xxx);
}
catch
(Exception e) {
newTransaction.rollback();
e.printStackTrace();
}
finally
{
newTransaction.close();
}
}
}