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

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                無論是測試,還是增加數據,或是查詢數據,都需要用到sessionFactory產生的session.本著『不寫重復代碼的原則』,我們新建db.MysqlJavaee來供其它類調用。 # db.MysqlJavaee ``` package db; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.cfg.Configuration; import org.hibernate.service.ServiceRegistry; import org.hibernate.service.ServiceRegistryBuilder; /** * Mysql類型的Javaee數據庫 * @author panjie * */ public class MysqlJavaee { static private SessionFactory sessionFactory; static public Session getCurrentSession() { // 每個數據庫只需要一個sessionFactory,在這里進行單一實例處理。 if (null == sessionFactory) { // 實例化并加載數據庫配置文件 Configuration configuration = new Configuration().configure(); // 構造服務注冊對象 ServiceRegistry serviceRegistry = new ServiceRegistryBuilder(). applySettings(configuration.getProperties()). buildServiceRegistry(); // 創建會話工廠(session factory)) sessionFactory = configuration .buildSessionFactory(serviceRegistry); } // 創建會話(這里的session也是會話的意思,我們以前接觸的http中的session,處理的是用戶與服務器的對話) return sessionFactory.getCurrentSession(); } } ``` # 測試 ``` package teacher; import java.util.List; import org.hibernate.HibernateException; import org.hibernate.Query; import org.hibernate.Session; import org.hibernate.Transaction; import org.junit.Test; import db.MysqlJavaee; import entity.Teacher; public class IndexTest { @Test public void getLists() { // 創建會話(這里的session也是會話的意思,我們以前接觸的http中的session,處理的是用戶與服務器的對話) Session session = MysqlJavaee.getCurrentSession(); // 開啟事務(使用緩沖池進行數據庫的連接) Transaction transaction = session.beginTransaction(); // 在這里,必須使用try catch finally語句。來確定會話正常關閉. // 否則,當操作數據庫產生錯誤時,你可能需要重啟mysql服務 try { // 新插入兩條記錄 Teacher teacher1 = new Teacher(); teacher1.setName("zhangsan"); Teacher teacher2 = new Teacher(); teacher2.setName("lisi"); session.save(teacher1); session.save(teacher2); // 查詢Teacher表,注意:是Teacher ,而不是 teacher Query query = session.createQuery("from Teacher"); // 預查詢,只有在事務提交時,才進行查詢操作 List<Teacher> teachers = query.list(); for (Teacher teacher : teachers) { System.out.println(teacher.toString()); } // 提交事務 transaction.commit(); // 捕獲異常 } catch (HibernateException e) { throw e; } finally { // 如果session處于開啟狀態,則關閉session if (session.isOpen()) { // 關閉會話 session.close(); } } } } ``` # TIPS 重構代碼,在運行一些測試語句時,即使我們在hibernate.cfg.xml中,將hbm2ddl.auto配置為create,也不會像以前一樣,每次運行一次程序都會清空一次數據表。這是由于,我們對SessionFactory進行了單例處理。所以單例,是指,不管我們訪問多少次,我們得到的都是同一樣的一個實例。 此時,如果我們想更改表結構,一是可以用以前的方法,每次運行都創建一個新的SessionFactory。二是可以重新啟動Tomcat。Tomcat的停止時,將釋放SessionFactory。再重啟的時候,又會創建一個新的SessionFactory,在創建這個新的SessionFacotry時,則會重新創建新的數據表了。 # 作業 還等什么,快試試吧。 1. 多次運行getLists,看是否每次運行都會增加2條新的記錄。 2. 停止tomcat后,再運行getLists,看是否數據表又回到了初始兩條記錄的狀態. 3. 對代碼更改后,eclipse進行了代碼了重新編譯。
                  <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>

                              哎呀哎呀视频在线观看