<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Cyh的博客

    Email:kissyan4916@163.com
    posts - 26, comments - 19, trackbacks - 0, articles - 220

    編程式事務&聲明式事務

    Posted on 2009-02-16 19:53 啥都寫點 閱讀(549) 評論(0)  編輯  收藏 所屬分類: J2EE

    采用編程式事務

    1、 getCurrentSession()openSession()的區別?

    * 采用getCurrentSession()創建的session會綁定到當前線程中,而采用openSession()創建的session則不會

    * 采用getCurrentSession()創建的sessioncommitrollback時會自動關閉,而采用openSession創建的session必須手動關閉

    2、使用getCurrentSession()需要在hibernate.cfg.xml文件中加入如下配置:

    * 如果使用的是本地事務jdbc事務)

    <property name=”hibernate.current_session_context_class”>thread</property>

    * 如果使用的是全局事務jta事務)

    <property name=”hibernate.current_session_context_class”>jta</property>

    采用聲明式事務

    聲明式事務配置

         * 配置SessionFactory

         * 配置事務管理器

         * 事務的傳播特性

         * 那些類哪些方法使用事務

    2、編寫業務邏輯方法

         * 繼承HibernateDaoSupport類,使用HibernateTemplate類持久化,HibernateTemplate

           Hibernate session的封裝

    * 默認的回滾是RuntimeException(包括繼承RuntimeException的子類),普通異常不回滾

     * 在編寫業務邏輯方法時,最好將異常一直往上拋出,在呈現層處理(struts

     * spring的事務需要設置到業務方法上(事務邊界定義到Facade類上),不要添加到Dao

    3、了解事務的集中傳播忒性

         1PROPAGATION_REQUIRED:如果存在一個事務,則支持當前事務。如果沒有事務則開啟。

         2PROPAGATION_SUPPORTS:如果存在一個事務,支持當前事務。如果沒有事務,則非事務的執行。

         3PROPAGATION_MANDATORY:如果已經存在一個事務,支持當前事務。如果沒有一個活動的事務,則拋出異常。

         4PROPAGATION_REQUIRES_NEW:總是開啟一個新的事務。如果一個事務存在,則將這個存在的事務掛起。

         5PROPAGATION_NOT_SUPPORTED:總是非事務地執行,并掛起任何存在的事務。

         6PROPAGATION_NEVER:總是非事務地執行,如果存在一個活動事務,則拋出異常。

         7 PROPAGATION_NESTED:如果一個活動的事務存在,則運行在一個嵌套的事務中,如果沒有活動事務,則按TransactionDefinition.PROPAGATION_REQUIRED屬性執行

    4Spring事務的隔離級別

         1 ISOLATION_DEFAULT: 這是一個PlatfromTransactionManager默認的隔離級別,使用數據庫默認的事務隔離級別。

         2ISOLATION_READ_UNCOMMITTED:這是事務最低的隔離級別,它允許另外一個事務可以看到這個事務未提交的數據。

         3ISOLATION_READ_COMMITTED:保證一個事務修改的數據提交后才能被另外一個事務讀取。另外一個事務不能讀取該事務未提交的數據。

         4ISOLATION_REPEATALBE_READ: 這種事務隔離級別可以防止臟讀,不可重復讀。但是可能出現幻想讀。它除了保證一個事務不能讀取另外一個事務未提交的數據外,還保證了避免下面的情況產生(不可重復讀)。

         5ISOLATION_SERIALIZABLE 這是花費最高代價但是最可靠的事務隔離級別。事務被處理為順序執行。除了防止臟讀,不課重復讀外,還避免了幻想讀。

    事務屬性

    T1

    T2   

    Required

    T1

    T2

    T1

    RequiredNew

    T1

    T2

    T2

    Support

    T1

    T1

    Mandatory

    T1

    拋異常

    T1

    NoSupport

    T1

    Never

    T1

    拋異常

    à

    <!-- 配置sessionFactory -- >

    <bean id=”sessionFacory”class=”org.springframework.orm.hibernate3.LocalSessionFactoryBean”>

    <property name=”configLocation”>

        <value>classpath:hibernate.cfg.xml</value>

    </property>

    </bean>

    <!-- 配置事務管理器-- >

    <beanid=”transactionManager”class=”org.springframework.orm.hibernate3.HibernateTransactionManager”>

       <property name=”sessionFactory”>

        <ref bean=”sessionFactory”/>

    </property>

    </bean>

    <!-- 配置事務的傳播特性-- >

    <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>

    <!-- 哪些類的哪些方法參與事務-- >

    <aop:config>

       <aop:pointcut id=”allManagerMethod” expression=”execution(* com.bjsxt.usermgr.manager.*.*(..))”/>

       <aop:advisor pointcut-ref=”allManagerMethod” advice-ref=”txAdvice”/>

    </aop:config>



                                                                                                           --    學海無涯
            

    主站蜘蛛池模板: 亚洲AV无码第一区二区三区| 久久免费99精品国产自在现线| 亚洲精品无码久久久久去q| 日韩免费视频在线观看| 91精品成人免费国产片| 国产精品免费无遮挡无码永久视频| 深夜福利在线免费观看| 亚洲欧美精品午睡沙发| 亚洲国产精品网站久久| 亚洲国产精品久久久久婷婷老年 | 亚洲人成网站在线观看播放青青| 国产亚洲精品影视在线产品| 国产一区二区三区无码免费| aa级一级天堂片免费观看| 久久精品无码专区免费东京热 | 亚洲精品白浆高清久久久久久| 国产免费怕怕免费视频观看| 最近中文字幕mv免费高清视频7 | 三上悠亚亚洲一区高清| 一本久久综合亚洲鲁鲁五月天| 在线观看人成网站深夜免费| 男人的好看免费观看在线视频| 亚洲精品免费在线| **一级毛片免费完整视| 3d动漫精品啪啪一区二区免费| 久久w5ww成w人免费| 99在线在线视频免费视频观看| 一区二区三区福利视频免费观看| 四虎国产精品免费永久在线| 久久er国产精品免费观看8| ssswww日本免费网站片| 亚洲精品视频免费 | 久久国产精品亚洲综合| 亚洲AV无码一区二区三区系列| 亚洲av日韩av高潮潮喷无码| 婷婷久久久亚洲欧洲日产国码AV | 男人进去女人爽免费视频国产| 成全在线观看免费观看大全| 国产又黄又爽胸又大免费视频| 免费看无码特级毛片| 人人玩人人添人人澡免费|