<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                ## 一,openSessioin方式開啟或者關閉事物 ~~~ Session session = null; try { session = HibernateUtils.getSession(); session.beginTransaction();//開啟事務 //TODO:各類CRUD操作 session.getTransaction().commit(); //提交事務 } catch (Exception e) { e.printStackTrace(); session.getTransaction().rollback(); //出錯回滾 } finally { HibernateUtils.closeSession(session); //關閉session } ~~~ 使用這種方式開啟和關閉事物,但是考慮到我們的事物一般都是在Service層開啟或者關閉的,而service里面在調用Dao層方法的時候,大部分情況下,都是調用多個方法,即一對多的調用,要想保證我每次開啟事務的時候,用的都是一個Session,上面這種簡陋的方法就不行了。 ## 二,getCurrentSession使用事物 ###1,添加使用currentSession的配置 ~~~ <property name="hibernate.current_session_context_class">thread</property><!-- 將session放到threadLoacl里面 --> ~~~ ###2,替換getSession方法 對與如下圖,其中要在單元測試類中添加測試用戶方法: ![](https://box.kancloud.cn/2016-03-02_56d6638093f0e.jpg) 代碼: ![](https://box.kancloud.cn/2016-03-02_56d66380a3bc6.jpg) 每次獲取session的時候,使用getCurrentSession方法,獲取當前線程使用的Session。同樣,在添加log的時候 ![](https://box.kancloud.cn/2016-03-02_56d66380b81d5.jpg) 也使用上面方法獲取session,這樣就能保證我一連串的CRUD操作的時候,使用的是一個Session。 小結: *openSession是必須要關閉session的,而currentSession是在事務結束之后自動關閉session *opsenSession沒有和當前線程綁定,currentSession和當前線程綁定了 *使用currentSession的時候需要在hibernate的配置文件中進行配置
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看