JDBC的事务管理在Spring2.0下有两种编程式的实现
PlatformTransactionManager
TransactionTemplate
对于PlatformTransctionManager,通常,不直接使用它,而是使用它的实现类DataSourceTransactionManager。
import com.gctx.framework.dao.IGenericJdbcDAO;
import com.gctx.framework.logs.Logit;
import java.io.Serializable;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.List;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.PreparedStatementCreator;
import org.springframework.jdbc.core.RowMapper;
import org.springframework.jdbc.core.support.JdbcDaoSupport;
import org.springframework.jdbc.datasource.DataSourceTransactionManager;
import org.springframework.jdbc.support.GeneratedKeyHolder;
import org.springframework.jdbc.support.KeyHolder;
import org.springframework.transaction.PlatformTransactionManager;
import org.springframework.transaction.TransactionStatus;
import org.springframework.transaction.support.DefaultTransactionDefinition;
public boolean tran(List<String> sqls)
{
if ((null == sqls) || (sqls.size() <= 0)) {
return false;
}
PlatformTransactionManager ptm = new DataSourceTransactionManager(getDataSource());
DefaultTransactionDefinition def = new DefaultTransactionDefinition();
TransactionStatus status = ptm.getTransaction(def);
try {
for (int i = 0; i < sqls.size(); i++) {
getJdbcTemplate().execute((String)sqls.get(i));
}
ptm.commit(status);
return true;
} catch (Exception e) {
ptm.rollback(status);
}
return false;
}
分享到:
相关推荐
本文将深入探讨`PlatformTransactionManager`接口,它是Spring提供的一个关键组件,用于处理不同类型的事务管理。 首先,`PlatformTransactionManager`是Spring的事务管理API的核心接口,它定义了对事务进行开始、...
在Spring中,`PlatformTransactionManager`接口是所有事务管理器的基类,如`DataSourceTransactionManager`用于JDBC事务,`HibernateTransactionManager`用于Hibernate事务,以及`JtaTransactionManager`用于JTA事务...
Spring 的事务管理器是通过 PlatformTransactionManager 接口体现的,该接口是 Spring 事务策略的核心,是一个与任何事务策略分离的接口,随着底层不同事务策略的切换,应用必须采用不同的实现类。 Spring 的事务...
在Spring中,编程式事务管理通常使用PlatformTransactionManager接口实现,如DataSourceTransactionManager(适用于JDBC事务)或HibernateTransactionManager(适用于Hibernate)。通过这个接口,我们可以手动开启...
2. `platformTransactionManager` Bean的配置,类型为`DataSourceTransactionManager`,它依赖于前面定义的`dataSource` Bean。 3. `helloADO` Bean的配置,这是一个自定义的类,用于执行数据库操作,并且依赖于`...
Spring的事务机制提供了一个PlatformTransactionManager接口,不同的数据访问技术的事务使用不同的接口实现。例如,JPA事务使用JpaTransactionManager实现,JDBC事务使用DataSourceTransactionManager实现。 在程序...
Spring提供了一个`PlatformTransactionManager`接口,它是所有事务管理器的基类。在编码式事务中,我们需要实现这个接口的`getTransaction()`, `commit()`, `rollback()`等方法来控制事务的生命周期。 2. **...
Spring的事务管理机制是基于PlatformTransactionManager接口的实现的,该接口定义了三个方法:getTransaction、commit和rollback。这三个方法是事务管理的核心,分别负责事务的开启、提交和回滚。 事务原子性 在...
**编程式事务管理** 是通过调用`PlatformTransactionManager`接口提供的方法来手动控制事务的开始、提交、回滚。例如,你可以使用`TransactionTemplate`或直接调用`TransactionDefinition`和`TransactionStatus`来...
Spring的事务管理主要围绕三个核心接口展开:PlatformTransactionManager、TransactionDefinition和TransactionStatus。 1. **PlatformTransactionManager**: PlatformTransactionManager接口是Spring事务管理的...
本文将详细介绍Spring事务管理的四种方式:编程式事务管理、声明式事务管理、PlatformTransactionManager接口以及TransactionTemplate。 1. **编程式事务管理**:这是一种手动控制事务的方式,通过在代码中调用`...
编程式事务管理通过调用`PlatformTransactionManager`接口提供的方法进行显式控制,如`beginTransaction()`, `commit()`, 和`rollback()`。声明式事务管理则依赖于AOP(面向切面编程)来自动处理事务的开始、提交或...
编程式事务管理通过调用`PlatformTransactionManager`接口的`beginTransaction()`、`commit()`和`rollback()`方法来手动控制事务的开始、提交和回滚。这种方式灵活性高,但易引入事务管理代码,降低了代码的可读性。...
public PlatformTransactionManager secondaryTransactionManager(@Qualifier("secondaryDataSource") DataSource secondaryDataSource) { return new DataSourceTransactionManager(secondaryDataSource); } ``` ...
Spring的PlatformTransactionManager接口是核心,它定义了事务管理的基本操作。对于多数据源事务,我们可以使用AbstractPlatformTransactionManager的子类,如DataSourceTransactionManager,它可以处理单个数据源的...
public PlatformTransactionManager postgresTransactionManager(@Qualifier("postgresDataSource") DataSource postgresDataSource) { return new DataSourceTransactionManager(postgresDataSource); } ``` 5. ...
`PlatformTransactionManager`可以根据你的数据库类型选择,如`DataSourceTransactionManager`(用于JDBC)或`HibernateTransactionManager`(用于Hibernate)。 ```java @Autowired private ...
Spring 在 TransactionDefinition 接口中定义这些属性,以供 PlatformTransactionManager 使用。PlatformTransactionManager 是 Spring 事务管理的核心接口。 TransactionDefinition 接口中定义了五个不同的方法: ...