[英]What is a good design pattern for DB manager that provides Session object in Hibernate?
我正在開發一個為任何消費者提供會話的課程。 因此,該類負責獲取SessionFactory並打開會話並在需要時傳遞它。
那么,什么是更好的設計? 像這樣的類中的靜態方法?
public class DbStatIo {
private static SessionFactory factory=null;
public static Session getSessionForStatDb(){
if (factory==null){
SessionFactory factory=new Configuration()
.configure(FilesManager.getSenseiConfigForStatDb())
.buildSessionFactory();
}
return factory.openSession();
}
}
還是只是當地的公共職能? 或者是其他東西?
一個的創建SessionFactory
實例是非常昂貴的操作由於信息它所占用的量(如所示在這里 ); 因為它是線程安全的,具有單個實例(作為單例)或保持靜態引用應該就足夠了。
但是,將它作為單例使用可能會比在靜態類中將其作為字段存儲更好,更靈活地控制對象的生命周期。 您可以依賴於IDatabaseService
數據訪問對象,公開由單個HibernateService
實例實現的方法getSession
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.