您好,登錄后才能下訂單哦!
請求超時!
本篇內容介紹了“hibernate的sessionfactory是做什么的”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
在回答這個問題之前,先來看看一些概念。
接下來,創建一個sessionfactory,一般有兩種創建方式,1.從XML文件讀取配置信息構建SessionFactory,2.從Java屬性文件讀取配置信息構建SessionFactory。
第一種:
1》實例化Configuration對象,默認讀取src目錄下的hibernate.cfg.xml,配置文件
<span style="font-size:18px;">Configuration config = new Configuration().configure();</span>
或者在configure();中指明文件名稱和路徑
<span style="font-size:24px;">Configuration config = new Configuration().configure("hibernate.cfg.xml");</span>
2》現在這個config對象,已經包括所有Hibernate運行期的參數,通過Configuration實例的buildSessionFactory()方法可以構建一個惟一的SessionFactory:
<span style="font-size:24px;">SessionFactory sessionFactory = config.buildSessionFactory();</span>
第二種
1》創建一個Configuration對象,此時Hibernate會默認加載classpath中的配置文件hibernate.properties,代碼如下。
Configuration config = new Configuration();
2》由于在配置文件中缺少相應的配置映射文件的信息,所以此處需要通過編碼方式加載,這可以通過Configuration對象的addClass()方法實現,具體代碼如下。
config.addClass(BranchForm.class);
addClass()方法用于加載實體類。
3》完成配置文件和映射文件的加載后,將得到一個包括所有Hibernate運行期參數的Configuration實例,通過Configuration實例的buildSessionFactory()方法可以構建一個惟一的SessionFactory,代碼如下。
SessionFactory sessionFactory = config.buildSessionFactory();
構建SessionFactory要放在靜態代碼塊中,因為它只需在該類被加載時執行一次。
<span style="font-size:24px;">Session session=sessionFactory.openSession();</span>
然后得到這個session之后,就可以使用它來進行數據庫的具體操作了,給一個簡單的代碼。多說一句,一般來說在使用session的時候,都會用到事務,尤其是需要對數據做修改的時候。上代碼:
<span style="font-size:24px;">public void save(Student student) { Transaction transaction= getSession().beginTransaction(); //開啟事務 getSession().save(student);//只要傳一個Student的對象實例 transaction.commit(); //事務提交 getSession().close();//關閉session}</span>
“hibernate的sessionfactory是做什么的”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。
億速云公眾號
手機網站二維碼
Copyright ? Yisu Cloud Ltd. All Rights Reserved. 2018 版權所有
廣州億速云計算有限公司粵ICP備17096448號-1 粵公網安備 44010402001142號增值電信業務經營許可證編號:B1-20181529