`
tanglei198577
  • 浏览: 57887 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类

spring transaction testing with hibernate

    博客分类:
  • SSH
阅读更多
<beans  xmlns="http://www.springframework.org/schema/beans" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xmlns:aop="http://www.springframework.org/schema/aop" 
xmlns:tx="http://www.springframework.org/schema/tx" 
xmlns:context="http://www.springframework.org/schema/context" 
xmlns:jee="http://www.springframework.org/schema/jee"
xsi:schemaLocation=" 
	http://www.springframework.org/schema/beans 
	http://www.springframework.org/schema/beans/spring-beans-2.5.xsd  
	http://www.springframework.org/schema/context 
    http://www.springframework.org/schema/context/spring-context-2.5.xsd 
    http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd  
    http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd
    http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-2.5.xsd"> 
    
   <description>Quick DAO Start for Spring</description>
    
   <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
     <property name="sessionFactory" ref="sessionFactory"></property>
   </bean>
   <!--programming transaction-->
   <bean id="tsService" class="com.transaction.SaveWithTs">
     <property name="hibernateTemplate" ref="hibernateTemplate"></property>
     <property name="transactionTemplate">
       <bean class="org.springframework.transaction.support.TransactionTemplate">
         <property name="transactionManager" ref="transactionManager">
         </property>
       </bean>
     </property>
   </bean>
   <!--declaring transaction-->
   <bean id="tsProxyService" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
     <property name="target" ref="tsProxyTransactionImpl"></property>
     <property name="proxyInterfaces" value="com.transaction.TsProxyTransaction"></property>
     <property name="transactionManager" ref="transactionManager"></property>
     <property name="transactionAttributes">
       <props>
         <prop key="add*">PROPAGATION_REQUIRED</prop>
         <!--  <prop key="*">PROPAGATION_SUPPORTS</prop>-->
       </props>
     </property>
   </bean>
   <bean id="tsProxyTransactionImpl" class="com.transaction.TsProxyTransactionImpl">
     <!--  <property name="hibernateTemplate" ref="hibernateTemplate"></property>-->
     <property name="sessionFactory" ref="sessionFactory"></property>
   </bean>
   
 
     <bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate">
       <property name="sessionFactory" ref="sessionFactory"></property>
     </bean>
     <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
       <property name="dataSource" ref="dataSource"></property>
       <property name="mappingResources">
         <list>
           <value>com/dao/Area.hbm.xml</value>
         </list>
       </property>
       <property name="hibernateProperties">
         <props>
           <prop key="hibernate.dialect">${hibernate.dialect}</prop>
         </props>
       </property>
     </bean>
     
     <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
       <property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"></property>
       <property name="url" value="jdbc:oracle:thin:@localhost:1521:orcl"></property>
       <property name="username" value="jil"></property>
       <property name="password" value="jil"></property>
     </bean> 


   </beans>

 <!--programming transaction class testing-->

package com.transaction;


import org.hibernate.HibernateException;
import org.springframework.orm.hibernate3.HibernateTemplate;
import org.springframework.transaction.TransactionStatus;
import org.springframework.transaction.support.TransactionCallback;
import org.springframework.transaction.support.TransactionTemplate;

import com.dao.Area;

public class SaveWithTs implements TransactionCallback {
	
	private TransactionTemplate transactionTemplate;
    private HibernateTemplate hibernateTemplate;

	public Object doInTransaction(TransactionStatus ts) {
		// TODO Auto-generated method stub
		return null;
	}
	public void saveWithTs(){
		transactionTemplate.execute(new TransactionCallback(){

			public Object doInTransaction(TransactionStatus ts) {
				// TODO Auto-generated method stub
				try{
					
					Area area = new Area();
					area.setAreaname("tanglei");
					area.setAreadetail("tanglei");
					area.setPid(new Long(10000));
					area.setAreaid(new Long(10000));
					area.setAreanum(new Long(10000));
					//jdbcTemplate.execute("insert into Area values(1000,'hehe','haha',100,100)");
					hibernateTemplate.save(area);
				    int j=1/0;
				} catch (HibernateException e) {
					ts.isRollbackOnly();
				}
				return null;
			}			
		});	
	}

	public void setTransactionTemplate(TransactionTemplate transactionTemplate) {
		this.transactionTemplate = transactionTemplate;
	}
	public void setHibernateTemplate(HibernateTemplate hibernateTemplate) {
		this.hibernateTemplate = hibernateTemplate;
	}
}

 <!--declaring transaction class testing-->

package com.transaction;

import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
import com.dao.Area;

public class TsProxyTransactionImpl extends HibernateDaoSupport implements TsProxyTransaction {


	public void addArea() {
		// TODO Auto-generated method stub
		Area area = new Area();
		area.setAreaname("tanglei");
		area.setAreadetail("tanglei");
		area.setPid(new Long(10000));
		area.setAreaid(new Long(10000));
		area.setAreanum(new Long(10000));
		//hibernateTemplate.save(area);
		getHibernateTemplate().save(area);
		//int j=1/0;
	}
	public void saveArea() {
		// TODO Auto-generated method stub
		Area area = new Area();
		area.setAreaname("tanglei");
		area.setAreadetail("tanglei");
		area.setPid(new Long(10000));
		area.setAreaid(new Long(10000));
		area.setAreanum(new Long(10000));
		getHibernateTemplate().save(area);
		int j=1/0;
	}

}

 

0
1
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics