本地SQL查詢
-------------------siwuxie095
本地 SQL 查詢
1、簡單介紹
采用 HQL 或 QBC 查詢時,Hibernate 生成標準的 SQL 語句,
適用於所有的數據庫平臺,因此這兩種查詢方式都是跨平臺的
但有的數據庫可能需要底層數據庫的 SQL 方言,來生成一些
特殊的查詢語句
此時,可以使用 Hibernate 提供的本地 SQL 查詢
2、使用 SQLQuery 對象實現本地 SQL 查詢
以客戶和聯系人為例(一對多)
如:
/* * (1) 創建 SQLQuery 對象 * * 調用 session 的 createSQLQuery() 方法, * 參數是本地 sql 語句,返回值是 SQLQuery * 類型,創建以接收 */ SQLQuery sqlQuery=session.createSQLQuery("select * from t_customer");
/* * (2) 調用方法得到結果 * * 調用 sqlQuery 的 list() 方法,返回值是 List 類 * 型,創建以接收 * * 註意:此時返回的 List 的每部分都是一個數組,而 * 不是 Customer 對象,所以指定泛型為 Object[] */ List<Object[]> list=sqlQuery.list();
for (Object[] objects : list) { //Arrays.toString() 將數組作為字符串輸出 System.out.println(Arrays.toString(objects)); } |
修改:讓返回的 List 中每部分都是一個 Customer 對象
/* * (1) 創建 SQLQuery 對象 */ SQLQuery sqlQuery=session.createSQLQuery("select * from t_customer");
/* * (2) 讓返回的 List 中每部分都是一個 Customer 對象 * * 調用 sqlQuery 的 addEntity() 方法,參數是實體類的 * class,設置要將數據放到哪個實體類的對象中 */ sqlQuery.addEntity(Customer.class);
/* * (3) 調用方法得到結果 */ List<Customer> list=sqlQuery.list(); |
【made by siwuxie095】
本地SQL查詢