SessionFactory是一個計算機語言,指的是負責創(chuàng)建Session的核心接口,它充當數(shù)據(jù)存儲源的代理,并負責創(chuàng)建Session對象。
1.sessionFactory 是什么
Hibernate的核心接口之一 SessionFactory接口:SessionFactroy接口負責初始化Hibernate。它充當數(shù)據(jù)存儲源的代理,并負責創(chuàng)建Session對象。這里用到了工廠模式。需要注意的是SessionFactory并不是輕量級的,因為一般情況下,一個項目通常只需要一個SessionFactory就夠,當需要操作多個數(shù)據(jù)庫時,可以為每個數(shù)據(jù)庫指定一個SessionFactory。
2.sessionFactory 作用
用于管理Hibernate會話(session)的對象,所以,最最最簡單的理解,你可以把sessionFactory想想成里面有一個DataSource;這個對象創(chuàng)建了,hibernate才真正和數(shù)據(jù)庫連接上了。即SessionFactory維護著所有連接對象已經(jīng)連接對象的分配和銷毀;SessionFactory是線程安全的,并且創(chuàng)建和銷毀需要消耗比較大的資源,所以整個應用里面針對一個數(shù)據(jù)庫只需要一個SessionFactory即可;
SessionFactory管理著配置在其中的映射對象的解析數(shù)據(jù),動作監(jiān)聽器,NamedQuery等大量信息;
sessionFactory的相關(guān)方法返回session對象,而不是平常的new關(guān)鍵字創(chuàng)建session
3.ssionFactory 使用方法
/**
*@param str
*@param int
*更新String類型的字段
*/
public int updateDm_bm(String str){
int resu=0;
//獲取會話工廠
SessionFactory sf=this.getSessionFactory();
//獲取SessionFactory的會話
Session session=(Session)this.getSessionFactory().getCurrentSession();
sf.openSession();
//開始事務(wù)
Transaction t=session.beginTransaction();
Query query =session.createQuery(str);
//提交事務(wù)
resu=query.executeUpdate();
// Query.executeUpdate()方法返回的整型值表明了受此操作影響
return resu;
}
此方法如果傳入一條數(shù)據(jù)修改語句。就可以直接執(zhí)行返回成功與否的結(jié)果。
而此處的SessionFactory一旦聲明,就不必去顧及數(shù)據(jù)庫連接的問題,很方便。
評論
查看更多