- 论坛徽章:
- 0
|
这是我写的一些代码,本来想看看spring的事务模板rollback情况的,但让人郁闷的是,我没有看到任何rollback,请各位帮我看看.
我在一个事务内同时执行两条insert语句,其中第二条会有错,按照事务的规则,第一条的insert语句也不会成功执行的,但遗憾的是,第一条insert语句成功执行了,在表里总有会增加一条record.
jdbcTemplate 和 transactionManager引用的都是同一个数据源.
/**
* @(#)TransactionTest.java
*
*
* @author
* @version 1.00 2007/8/14
*/
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.transaction.PlatformTransactionManager;
import org.springframework.jdbc.datasource.DataSourceTransactionManager;
import org.springframework.transaction.support.TransactionTemplate;
import org.springframework.transaction.support.TransactionCallback;
import org.springframework.transaction.TransactionStatus;
import org.springframework.transaction.support.TransactionCallbackWithoutResult;
import org.springframework.jdbc.BadSqlGrammarException;
public class TransactionTest {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
ApplicationContext ctx = new ClassPathXmlApplicationContext("bean.xml");
final JdbcTemplate jt = (JdbcTemplate)ctx.getBean("jdbcTemplate");
PlatformTransactionManager ptm = (PlatformTransactionManager)ctx.getBean("transactionManager");
TransactionTemplate tt = new TransactionTemplate(ptm);
tt.execute(new TransactionCallbackWithoutResult(){
protected void doInTransactionWithoutResult(TransactionStatus status){
jt.update("insert person(name,age) values('Kkk',34)");
jt.update("insert----- person(name,age) values('GGG',45)");
}
});
}
}
本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u1/45398/showart_360081.html |
|