SessionFactory是一個(gè)計(jì)算機(jī)語(yǔ)言,指的是負(fù)責(zé)創(chuàng)建Session的核心接口,它充當(dāng)數(shù)據(jù)存儲(chǔ)源的代理,并負(fù)責(zé)創(chuàng)建Session對(duì)象。
SessionFactory接口:SessionFactory接口負(fù)責(zé)初始化Hibernate。它充當(dāng)數(shù)據(jù)存儲(chǔ)源的代理,并負(fù)責(zé)創(chuàng)建Session對(duì)象。這里用到了工廠模式。需要注意的是SessionFactory并不是輕量級(jí)的,因?yàn)橐话闱闆r下,一個(gè)項(xiàng)目通常只需要一個(gè)SessionFactory就夠,當(dāng)需要操作多個(gè)數(shù)據(jù)庫(kù)時(shí),可以為每個(gè)數(shù)據(jù)庫(kù)指定一個(gè)SessionFactory。
數(shù)據(jù)庫(kù)是一個(gè)單位或是一個(gè)應(yīng)用領(lǐng)域的通用數(shù)據(jù)處理系統(tǒng),它存儲(chǔ)的是屬于企業(yè)和事業(yè)部門(mén)、團(tuán)體和個(gè)人的有關(guān)數(shù)據(jù)的集合。數(shù)據(jù)庫(kù)中的數(shù)據(jù)是從全局觀點(diǎn)出發(fā)建立的,按一定的數(shù)據(jù)模型進(jìn)行組織、描述和存儲(chǔ)。其結(jié)構(gòu)基于數(shù)據(jù)間的自然聯(lián)系,從而可提供一切必要的存取路徑,且數(shù)據(jù)不再針對(duì)某一應(yīng)用,而是面向全組織,具有整體的結(jié)構(gòu)化特征。
數(shù)據(jù)庫(kù)中的數(shù)據(jù)是為眾多用戶(hù)所共享其信息而建立的,已經(jīng)擺脫了具體程序的限制和制約。不同的用戶(hù)可以按各自的用法使用數(shù)據(jù)庫(kù)中的數(shù)據(jù);多個(gè)用戶(hù)可以同時(shí)共享數(shù)據(jù)庫(kù)中的數(shù)據(jù)資源,即不同的用戶(hù)可以同時(shí)存取數(shù)據(jù)庫(kù)中的同一個(gè)數(shù)據(jù)。數(shù)據(jù)共享性不僅滿足了各用戶(hù)對(duì)信息內(nèi)容的要求,同時(shí)也滿足了各用戶(hù)之間信息通信的要求。
使用JDBC和hibernateSessionFactory訪問(wèn)數(shù)據(jù)庫(kù)
package test.dao;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.List;
import org.hibernate.Query;
import org.hibernate.Session;
import test.vo.User;
public class TestDao {
@SuppressWarnings(“deprecation”)
public void querySql(Integer id){
Session session= HibernateSessionFactory.getSession();
Connection conn = session.connection();
PreparedStatement ps=null;
ResultSet rs=null;
try {
String sql = “select username,password from shdb.user”;
ps =conn.prepareStatement(sql);
rs = ps.executeQuery();
while(rs.next()){
String nameString = rs.getString(1);
String passString = rs.getString(2);
System.out.println(nameString+“--------”+passString);
}
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}finally{
try {
if(rs != null)
rs.close();
if(ps != null)
ps.close();
if(conn != null)
conn.close();
} catch (Exception e2) {
// TODO: handle exception
}
}
}
public void queryHql(Integer id){
Session session= HibernateSessionFactory.getSession();
User user = (User)session.get(User.class, id);
System.out.println(“hql get.。。。。。。。”+user.getUsername()+“ ”+user.getPassword());
session.close();
}
@SuppressWarnings(“unchecked”)
public void queryHql1(Integer id){
Session session= HibernateSessionFactory.getSession();
String hql=“from User”;
Query query=session.createQuery(hql);
List《User》 userList = query.list();
for(User user :userList){
System.out.println(“hql list.。。。。。。。”+user.getUsername()+“ ”+user.getPassword());
}
session.close();
}
}
評(píng)論
查看更多