1. 程式人生 > >本地SQL查詢

本地SQL查詢

nbsp borde 得到 list() 一個 指定 介紹 底層 泛型

-------------------siwuxie095

本地 SQL 查詢

1、簡單介紹

采用 HQLQBC 查詢時,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查詢