乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      如何使用spring聲明式事務(wù)

       moonboat 2009-10-12

      1、聲明式事務(wù)配置
      * 配置SessionFactory
      * 配置事務(wù)管理器
      * 事務(wù)的傳播特性
      * 那些類那些方法使用事務(wù)

      2、編寫業(yè)務(wù)邏輯方法
      * 繼承HibernateDaoSupport類,使用HibernateTemplate來持久化,HibernateTemplate是
         Hibernate Session的輕量級(jí)封裝
      * 默認(rèn)情況下運(yùn)行期異常才會(huì)回滾(包括繼承了RuntimeException子類),普通異常是不會(huì)滾的
      * 編寫業(yè)務(wù)邏輯方法時(shí),最好將異常一直向上拋出,在表示層(struts)處理
      * 關(guān)于事務(wù)邊界的設(shè)置,通常設(shè)置到業(yè)務(wù)層,不要添加到Dao上

      3、了解事務(wù)的幾種傳播特性
      1. PROPAGATION_REQUIRED: 如果存在一個(gè)事務(wù),則支持當(dāng)前事務(wù)。如果沒有事務(wù)則開啟
      2. PROPAGATION_SUPPORTS: 如果存在一個(gè)事務(wù),支持當(dāng)前事務(wù)。如果沒有事務(wù),則非事務(wù)的執(zhí)行
      3. PROPAGATION_MANDATORY: 如果已經(jīng)存在一個(gè)事務(wù),支持當(dāng)前事務(wù)。如果沒有一個(gè)活動(dòng)的事務(wù),則拋出異常。
      4. PROPAGATION_REQUIRES_NEW: 總是開啟一個(gè)新的事務(wù)。如果一個(gè)事務(wù)已經(jīng)存在,則將這個(gè)存在的事務(wù)掛起。
      5. PROPAGATION_NOT_SUPPORTED: 總是非事務(wù)地執(zhí)行,并掛起任何存在的事務(wù)。
      6. PROPAGATION_NEVER: 總是非事務(wù)地執(zhí)行,如果存在一個(gè)活動(dòng)事務(wù),則拋出異常
      7. PROPAGATION_NESTED:如果一個(gè)活動(dòng)的事務(wù)存在,則運(yùn)行在一個(gè)嵌套的事務(wù)中. 如果沒有活動(dòng)事務(wù),
            則按TransactionDefinition.PROPAGATION_REQUIRED 屬性執(zhí)行

      4、Spring事務(wù)的隔離級(jí)別
      1. ISOLATION_DEFAULT: 這是一個(gè)PlatfromTransactionManager默認(rèn)的隔離級(jí)別,使用數(shù)據(jù)庫默認(rèn)的事務(wù)隔離級(jí)別.
            另外四個(gè)與JDBC的隔離級(jí)別相對(duì)應(yīng)
      2. ISOLATION_READ_UNCOMMITTED: 這是事務(wù)最低的隔離級(jí)別,它充許令外一個(gè)事務(wù)可以看到這個(gè)事務(wù)未提交的數(shù)據(jù)。
            這種隔離級(jí)別會(huì)產(chǎn)生臟讀,不可重復(fù)讀和幻像讀。
      3. ISOLATION_READ_COMMITTED: 保證一個(gè)事務(wù)修改的數(shù)據(jù)提交后才能被另外一個(gè)事務(wù)讀取。另外一個(gè)事務(wù)不能讀取該事務(wù)未提交的數(shù)據(jù)
      4. ISOLATION_REPEATABLE_READ: 這種事務(wù)隔離級(jí)別可以防止臟讀,不可重復(fù)讀。但是可能出現(xiàn)幻像讀。
            它除了保證一個(gè)事務(wù)不能讀取另一個(gè)事務(wù)未提交的數(shù)據(jù)外,還保證了避免下面的情況產(chǎn)生(不可重復(fù)讀)。
      5. ISOLATION_SERIALIZABLE 這是花費(fèi)最高代價(jià)但是最可靠的事務(wù)隔離級(jí)別。事務(wù)被處理為順序執(zhí)行。
            除了防止臟讀,不可重復(fù)讀外,還避免了幻像讀。     

      spring配置文件如下:

      <?xml version="1.0" encoding="UTF-8"?>

      <beans xmlns="http://www./schema/beans"
            xmlns:xsi="http://www./2001/XMLSchema-instance"
            xmlns:aop="http://www./schema/aop"
            xmlns:tx="http://www./schema/tx"
            xsi:schemaLocation="http://www./schema/beans http://www./schema/beans/spring-beans-2.0.xsd
                 http://www./schema/aop http://www./schema/aop/spring-aop-2.0.xsd
                 http://www./schema/tx http://www./schema/tx/spring-tx-2.0.xsd">
      <!-- 配置sessionFactory -->
      <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
         <property name="configLocation">
          <value>classpath:hibernate.cfg.xml</value>
         </property>
      </bean>          

      <!-- 配置事務(wù)管理器 -->
      <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
         <property name="sessionFactory">
          <ref bean="sessionFactory"/>
         </property>
      </bean>

      <!-- 配置事務(wù)的傳播特性 -->
      <tx:advice id="txAdvice" transaction-manager="transactionManager">
         <tx:attributes>
          <tx:method name="add*" propagation="REQUIRED"/>
          <tx:method name="del*" propagation="REQUIRED"/>
          <tx:method name="modify*" propagation="REQUIRED"/>
          <tx:method name="*" read-only="true"/>
         </tx:attributes>
      </tx:advice>

      <!-- 那些類的哪些方法參與事務(wù) -->
      <aop:config>
         <aop:pointcut id="allManagerMethod" expression="execution(* com.bjsxt.usermgr.manager.*.*(..))"/>
         <aop:advisor pointcut-ref="allManagerMethod" advice-ref="txAdvice"/>
      </aop:config>
      </beans>


        本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶 評(píng)論公約

        類似文章 更多