Spring配置使用编程式事务

来源:互联网 发布:域名怎样注册 编辑:程序博客网 时间:2024/05/16 06:43

配置文件:

 

 <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
      
<property name="driverClassName">
         
<value>com.sybase.jdbc3.jdbc.SybDriver</value>
       
</property>
       
<property name="url">
         
<value>jdbc:sybase:Tds:192.168.0.10:4100/DB_CENTER?charset=eucgb&amp;jconnect_version=4
         
</value>
       
</property>
       
<property name="username">
         
<value>sa</value>
       
</property>
       
<property name="password">
         
<value></value>
       
</property>
   
</bean>
    
<bean id="TransactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
         
<property name="dataSource">
             
<ref bean="dataSource"/>
         
</property>
    
</bean> 
    
<bean id="sessionFactory"
        class
="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
        
<property name="dataSource">
            
<ref local="dataSource" />
        
</property>
        
<property name="hibernateProperties">
            
<props>
                
<prop key="hibernate.dialect">
                    org.hibernate.dialect.SybaseDialect
                
</prop>
                
<prop key="hibernate.show_sql">false</prop>
                
<prop key="hibernate.cache.use_query_cache">true</prop>
                
<prop key="hibernate.cache.provider_class">
                    org.hibernate.cache.HashtableCacheProvider
                
</prop>
            
</props>
        
</property>
        
<property name="mappingResources">
           
<list> 
             
<value>com/bjjdsy/ky/zl/domain/ZlStationTab.hbm.xml</value>
           
</list>
        
</property>
    
</bean>

    
<bean id="transactionTemplate" class="org.springframework.transaction.support.TransactionTemplate">
      
<property name="transactionManager">
        
<ref bean="TransactionManager"/>
      
</property>
    
</bean>
    
<bean id="courseService" class="com.test.CourseService">
      
<property name="transactionTemplate">
        
<ref bean="transactionTemplate"/>
      
</property>
    
</bean>

回调函数代码:

private TransactionTemplate transactionTemplate;
    
public void enrollStudent(){
        transactionTemplate.execute(
new TransactionCallback(){
            
public Object doInTransaction(TransactionStatus ts){
                
try {
//                    需要事务控制的方法代码
                }
 catch (Exception e) {
                    ts.setRollbackOnly();  
//回滚
                }

                
return null;  //事务提交
            }
    
        }
);
    }

}

 

原创粉丝点击