Hibernat 對資料庫的操作是透過Session來實現的,這裡的session不同於頁面間傳遞引數的session, 而是類似於JDBC中的 Connection。Session是Hibernate運作的中心,物件的生命週期、事務的管理、資料庫的存取都與session息息相關。 Session是由HibernateSessionFactory建立的,是執行緒安全的,可以讓多個執行執行緒同時存取 HibernateSessionFactory而不會有資料共享的問題,但不能讓多個執行緒共享一個Session。 SessionFactory物件的建立: Java程式碼 Configuration cfg = new Configuration().configure(); SessionFactory sessions = cfg.buildSessionFactory(); session建立時使用了一個ThreadLocal類來建立一個Session管理的輔助類,使用ThreadLocal可以有效隔離執行所用的資料, 避開了Session的多執行緒之間的資料共享問題。 //建立一個執行緒本地變數。 Java程式碼 public static final ThreadLocal
Hibernat 對資料庫的操作是透過Session來實現的,這裡的session不同於頁面間傳遞引數的session, 而是類似於JDBC中的 Connection。Session是Hibernate運作的中心,物件的生命週期、事務的管理、資料庫的存取都與session息息相關。 Session是由HibernateSessionFactory建立的,是執行緒安全的,可以讓多個執行執行緒同時存取 HibernateSessionFactory而不會有資料共享的問題,但不能讓多個執行緒共享一個Session。 SessionFactory物件的建立: Java程式碼 Configuration cfg = new Configuration().configure(); SessionFactory sessions = cfg.buildSessionFactory(); session建立時使用了一個ThreadLocal類來建立一個Session管理的輔助類,使用ThreadLocal可以有效隔離執行所用的資料, 避開了Session的多執行緒之間的資料共享問題。 //建立一個執行緒本地變數。 Java程式碼 public static final ThreadLocal