Hibernate是一個開放源代碼的對象關系映射框架,他對JDBC進行了輕量級的封裝,使Java開發員可以隨心所欲的使用對象編程思維操作數據庫。
SessionFactory接口負責初始化Hibernate.他充當數據儲存源的代理,并負責創建Session對象。
Session:http是無狀態的協議,沒辦法保存任何訪問對象的信息,所以session用來記錄訪問者的一些信息。但是,在hibernate里面的session并不是http里的session,一般把httpSession成為用戶會話。在hibernate里的session指的是應用程序和數據庫的一次交互,包含了一般的crud操作。
?
Hibernate數據查詢
Hibernate的數據查詢方式主要有3種,它們是:
Hibernate Query Language(HQL)
Criteria Query
Native SQL
Hibernate Query Language(HQL)提供了十分強大的功能,推薦大家使用這種查詢方式。HQL具有與SQL語言類似的語法規范,只不過SQL針對表中字段進行查詢,而HQL針對持久化對象,它用來取得對象,而不進行update、delete和insert等操作。而且HQL是完全面向對象的,具備繼承、多態和關聯等特性。
Query query = session.createQuery(“from Student”);
List list = query.list();
Student stu = (Student)list.get(0);
?
?
?
Hibernate還支持Criteria查詢(Criteria Query),這種查詢方式把查詢條件封裝為一個Criteria對象。
Criteria?cr?=?session.createCriteria(Student.class);?//生成一個Criteria對象
cr.add(Restrictions.eq("name",?"Bill"));//等價于where?name=’Bill’
List?list?=?cr.list();
Student?stu?=?(Student)list.get(0);
crieria.uniqueResult();代表結果唯一取出結果
?