簡體   English   中英

在Hibernate中提供Session對象的DB管理器有什么好的設計模式?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM