hibernate的Query、Criteria、SQLQuery物件使用
阿新 • • 發佈:2018-12-22
一、Query物件
1. 使用query物件,不需要寫sql語句,但是寫hql語句
(1)hql:hibernate query language,hibernate提供查詢語言,這個hql語句和普通sql語句很相似。
(2)hql和sql語句區別:
- 使用sql操作表和表字段
- 使用hql操作實體類和屬性
2. 查詢所有的hql語句:from 實體類名稱
3. Query物件使用
(1)建立Query物件
(2)呼叫query物件裡面的方法得到結果
//建立query物件 方法裡引數寫hql語句 Query query = session.createQuery("from User"); //呼叫query物件裡面的方法得到結果 List<User> list = query.list(); for (User user : list) { System.out.println(user); }
二、Criteria物件
1. 使用這個物件查詢操作,但是使用這個物件時候,不需要寫語句,直接呼叫方法實現
2. 實現過程
(1)建立criteria物件
(2)呼叫物件裡面的方法得到結果
//建立Criteria物件 方法裡放實體類的class
Criteria criteria = session.createCriteria(User.class);
//呼叫方法得到結果
List<User> list = criteria.list();
for (User user : list) {
System.out.println(user);
}
二、SQLQuery物件
1. 使用hibernate時候,呼叫底層sql實現
2. 實現過程
(1)建立物件
(2)呼叫物件的方法得到結果
返回list集合每部分是陣列
//建立SQLQuery物件 方法裡引數寫普通sql語句 SQLQuery sqlQuery = session.createSQLQuery("select * from users"); //呼叫方法得到結果 預設裡面每部分是陣列結構 List<Object []> list = sqlQuery.list(); for (Object[] objects : list) { System.out.println(Arrays.toString(objects)); //Arrays.toString()把陣列作為字串輸出 }
返回list中每部分是物件形式
//返回的list中每部分是物件形式
sqlQuery.addEntity(User.class);
//呼叫sqlQuery裡面的方法
List<User> list = sqlQuery.list();
for (User user : list) {
System.out.println(user);
}