Hibernate其它API
----------------siwuxie095
(一)Query
1、使用 Query 對象執行查詢操作,不需要寫 sql 語句,但是要寫 hql 語句
(1)hql:即 Hibernate Query Language,它是 Hibernate 提供的查詢語言
(2)hql 語句和 sql 語句很相似
(3)hql 和 sql 語句的區別:
1)使用 sql 語句操作的是表和表中字段
2)使用 hql 語句操作的是實體類和屬性
2、"查詢所有記錄"
的
from 實體類名
3、實現過程
(1)創建 Query 對象
(2)調用 Query 對象的方法得到結果
//(1) 創建 Query 對象 // //調用 session 的 createQuery() 方法, //參數是 hql 語句,返回值是 Query 類型, //創建以接收 Query query=session.createQuery("from User");
//(2) 調用 Query 對象的方法得到結果 // //調用 query 的 list() 方法得到結果, //返回值是 List 類型,創建以接收,並 //指定泛型為 User List<User> list=query.list();
for (User user : list) { System.out.println(user); } |
(二)Criteria
1、使用 Criteria 對象執行查詢操作,不需要寫語句,直接調用方法實現
2、實現過程
(1)創建 Criteria 對象
(2)調用 Criteria 對象的方法得到結果
//(1) 創建 Criteria 對象 // //調用 session 的 createCriteria() 方法, //參數是實體類的 class,返回值是 Criteria //類型,創建以接收 Criteria criteria=session.createCriteria(User.class);
//(2) 調用 Criteria 對象的方法得到結果 // //調用 criteria 的 list() 方法得到結果, //返回值是 List 類型,創建以接收,並指定 //泛型為 User List<User> list=criteria.list();
for (User user : list) { System.out.println(user); } |
(三)SQLQuery
1、使用 SQLQuery 對象執行查詢操作,可以調用底層 sql 語句實現
2、實現過程
(1)創建 SQLQuery 對象
(2)調用 SQLQuery 對象的方法得到結果
//(1) 創建 SQLQuery 對象 // //調用 session 的 createCriteria() 方法, //參數是 sql 語句,返回值是 SQLQuery 類型, //創建以接收 SQLQuery sqlQuery=session.createSQLQuery("select * from t_user");
//(2) 調用 SQLQuery 對象的方法得到結果 // //調用 sqlQuery 的 list() 方法得到結果, //返回值是 List 類型,創建以接收 // //註意:此時返回的 List 的每部分都是一 //個數組,而不是 User 對象,所以指定泛型 //為 Object[] List<Object[]> list=sqlQuery.list();
for (Object[] objects : list) { //Arrays.toString() 將數組作為字符串輸出 System.out.println(Arrays.toString(objects)); } |
修改:讓返回的 List 中每部分都是一個 User 對象
SQLQuery sqlQuery=session.createSQLQuery("select * from t_user");
//讓返回的 List 中每部分都是一個 User 對象 // //調用 sqlQuery 的 addEntity() 方法,參數 //是實體類的 class,設置要將數據放到哪個實 //體類的對象中 sqlQuery.addEntity(User.class);
List<User> list=sqlQuery.list();
for (User user : list) { System.out.println(user); } |
【made by siwuxie095】
Hibernate其它API