【整理】JDBC事务管理编程实现
2017-04-19 15:08
288 查看
1.PlatformTransactionManager
具体用法如下:(1)实例化需要数据源作参数
(2)建立事物的定义,使用DefaultTransactionDefinition类,直接New个新的就可以了
(3)调用DefaultTransactionDefinition类的setPropagationBehavior方法,参数是TransactionDefinition的常量,例如PROPAGATION_REQUIRED等。
(4)使用具体的SQL操作之前,创建一个TransactionStatus类的实例,def是DefaultTransactionDefinition的实例。
(5)正常操作的话,就使用transactionManager.commit(status)。
代码示例:
JdbcTemplate template = new JdbcTemplate(datasource);
DataSourceTransactionManager tran = new DataSourceTransactionDefinition();
DefaultTransactionDefinition def = new DefaultTransactionDefinition();
def.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRED);
TransactionStatus status = tran.getTransaction(def);
try{
template.update("insert into userinfo(username,password) values('aaaa','bbbb')");
template.update("insert into userinfo(username,password) values('cccc','ddd')");
tran.commit(status);
}catch(Exception ex){ tran.rollback(status)};
2.TransactionTemplate
具体用法如下:(1)具体的SQL语句操作时,实例化它,TransactionTemplate transactionTemplate = new TransactionTemplate(transactionManager);
(2)然后具体的SQL操作,transactionTemplate.execute(new TransactionCallback(){
public Object doInTransaction(TransactionStatus status){ //这里执行SQL操作}
})
(3)如果没有返回值,可以使用TransactionCallbackWithoutResult 类。
代码示例:
final JdbcTemplate template = new JdbcTemplate(datasource);
DataSourceTransactionManager tran = new DataSourceTransactionManager(datasource);
TransactionTemplate trantemplate = new TransactionTemplate(tran);
trantemplate.execute(new TransactionCallback(){
public Object doInTransaction(TransactionStatus status){
int i = 0;
try{
template.update("insert into userinfo(username, password) values('jjj','kkk')");
template.update("insert into userinfo(username, password) values('llll','mmm')");
i = 1;
}catch(Exception ex){
ex.printStackTrace();
status.setRollbackOnly();
i=0;
}
return new Integer(i);
}
})
具体用法如下:(1)实例化需要数据源作参数
(2)建立事物的定义,使用DefaultTransactionDefinition类,直接New个新的就可以了
(3)调用DefaultTransactionDefinition类的setPropagationBehavior方法,参数是TransactionDefinition的常量,例如PROPAGATION_REQUIRED等。
(4)使用具体的SQL操作之前,创建一个TransactionStatus类的实例,def是DefaultTransactionDefinition的实例。
(5)正常操作的话,就使用transactionManager.commit(status)。
代码示例:
JdbcTemplate template = new JdbcTemplate(datasource);
DataSourceTransactionManager tran = new DataSourceTransactionDefinition();
DefaultTransactionDefinition def = new DefaultTransactionDefinition();
def.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRED);
TransactionStatus status = tran.getTransaction(def);
try{
template.update("insert into userinfo(username,password) values('aaaa','bbbb')");
template.update("insert into userinfo(username,password) values('cccc','ddd')");
tran.commit(status);
}catch(Exception ex){ tran.rollback(status)};
2.TransactionTemplate
具体用法如下:(1)具体的SQL语句操作时,实例化它,TransactionTemplate transactionTemplate = new TransactionTemplate(transactionManager);
(2)然后具体的SQL操作,transactionTemplate.execute(new TransactionCallback(){
public Object doInTransaction(TransactionStatus status){ //这里执行SQL操作}
})
(3)如果没有返回值,可以使用TransactionCallbackWithoutResult 类。
代码示例:
final JdbcTemplate template = new JdbcTemplate(datasource);
DataSourceTransactionManager tran = new DataSourceTransactionManager(datasource);
TransactionTemplate trantemplate = new TransactionTemplate(tran);
trantemplate.execute(new TransactionCallback(){
public Object doInTransaction(TransactionStatus status){
int i = 0;
try{
template.update("insert into userinfo(username, password) values('jjj','kkk')");
template.update("insert into userinfo(username, password) values('llll','mmm')");
i = 1;
}catch(Exception ex){
ex.printStackTrace();
status.setRollbackOnly();
i=0;
}
return new Integer(i);
}
})
相关文章推荐
- 手工实现JDBC事务管理。
- xml方式实现spring的声明式事务管理及对jdbc操作的支持
- JDBC03 利用JDBC实现事务提交与回滚【调用Connection中的方法实现事务管理】
- JDBC 实现 事务管理
- 事务管理(二) JDBC事务管理简单实现
- Spring2.0用注解实现事务管理
- 使用JOTM实现分布式事务管理(多数据源)
- Spring2.0用注解实现事务管理
- Hibernate的两种事务管理jdbc 和jta方式
- 对Spring事务管理实现技术的分析
- 基于.NET平台的Windows编程实战(六)—— 题目管理功能的实现
- 使用Spring 2.0 新特性实现声明式事务管理-基于XML Schema
- Spring实现基于容器的事务管理
- 对Spring事务管理实现技术的分析
- 基于Spring的轻量级Web Service事务管理框架及其实现
- JDBC编程学习笔记整理
- 使用JOTM实现分布式事务管理(多数据源)
- 使用Spring 2.0 新特性实现声明式事务管理-基于XML Schema
- [预告]将要推出编程方式事务管理祥解!
- (ZT)使用JOTM实现分布式事务管理(多数据源)