浏览 4062 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2010-04-28
最后修改:2010-06-21
TransactionCallbackWithoutResult —— 执行事务没有返回值,例如save、update、delete等等; TransactionCallback —— 执行事务处理后有返回值,如find要返回结果集(List); spring相关配置 <!-- dataSource --> <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <!-- Connection Info --> <property name="driverClassName" value="oracle.jdbc.driver.OracleDriver" /> <property name="url" value="jdbc:oracle:thin:@192.168.26.188:1521:xxx" /> <property name="username" value="xx" /> <property name="password" value="xx" /> <!-- Connection Pooling Info --> <property name="initialSize" value="3" /> <property name="maxActive" value="5" /> <property name="maxIdle" value="30" /> <property name="maxWait" value="1000" /> <property name="poolPreparedStatements" value="true" /> <property name="defaultAutoCommit" value="true" /> </bean> <bean id="dataSourceTransactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <constructor-arg ref="dataSource" /> </bean> <bean id="transactionTemplate" class="org.springframework.transaction.support.TransactionTemplate"> <constructor-arg ref="dataSourceTransactionManager" /> </bean> public void createPerson(final Person person) { transactionTemplate.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRED); transactionTemplate.execute(new TransactionCallbackWithoutResult(){ // 使用无返回值的事务回调接口 @Override protected void doInTransactionWithoutResult(TransactionStatus arg0) { getHibernateTemplate().save(person); } }); } public Person queryOnePerson(final String hql) { transactionTemplate.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRED); return (Person)transactionTemplate.execute(new TransactionCallback(){ // 使用带返回值的事务回调接口 public Object doInTransaction(TransactionStatus arg0) { return getHibernateTemplate().find(hql).get(0); } }); } 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |