SessionFactory是一個計算機語言,指的是負責創(chuàng)建Session的核心接口,它充當數(shù)據(jù)存儲源的代理,并負責創(chuàng)建Session對象。
SessionFactory接口:SessionFactory接口負責初始化Hibernate。它充當數(shù)據(jù)存儲源的代理,并負責創(chuàng)建Session對象。這里用到了工廠模式。需要注意的是SessionFactory并不是輕量級的,因為一般情況下,一個項目通常只需要一個SessionFactory就夠,當需要操作多個數(shù)據(jù)庫時,可以為每個數(shù)據(jù)庫指定一個SessionFactory。
數(shù)據(jù)庫是一個單位或是一個應(yīng)用領(lǐng)域的通用數(shù)據(jù)處理系統(tǒng),它存儲的是屬于企業(yè)和事業(yè)部門、團體和個人的有關(guān)數(shù)據(jù)的集合。數(shù)據(jù)庫中的數(shù)據(jù)是從全局觀點出發(fā)建立的,按一定的數(shù)據(jù)模型進行組織、描述和存儲。其結(jié)構(gòu)基于數(shù)據(jù)間的自然聯(lián)系,從而可提供一切必要的存取路徑,且數(shù)據(jù)不再針對某一應(yīng)用,而是面向全組織,具有整體的結(jié)構(gòu)化特征。
數(shù)據(jù)庫中的數(shù)據(jù)是為眾多用戶所共享其信息而建立的,已經(jīng)擺脫了具體程序的限制和制約。不同的用戶可以按各自的用法使用數(shù)據(jù)庫中的數(shù)據(jù);多個用戶可以同時共享數(shù)據(jù)庫中的數(shù)據(jù)資源,即不同的用戶可以同時存取數(shù)據(jù)庫中的同一個數(shù)據(jù)。數(shù)據(jù)共享性不僅滿足了各用戶對信息內(nèi)容的要求,同時也滿足了各用戶之間信息通信的要求。
使用JDBC和hibernateSessionFactory訪問數(shù)據(jù)庫
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();
}
}
評論