hibernate框架中使用hql語句查詢資料庫

2021-08-19 22:16:23 字數 2453 閱讀 1598

首先寫hql語句,string hql = 「from user」,user是你要查詢的物件類名,當類名不唯一時需要寫出完整類名,比如在乙個專案中兩個包中都含有user類時,hql語句應該這樣寫, stirng hql = "from com.ss.model.user"; 

根據hql語句建立查詢物件。 session.createquery(string arg);arg為hql語句。

根據查詢物件獲得查詢結果。 query類有兩個方法獲得結果。 query.list() : 你知道查詢結果會有多個物件時,獲取list集合。 query.uniqueresult() :接受唯一的查詢結果

示例**

session session = hibernateutil.getsession(); // 獲取session

transaction tx = session.begintransaction(); // 開啟事務

string hql = "from user"; // 查詢所有user類物件

query query= session.createquery(hql); //根據hql語句獲得建立查詢物件

//listlist = query.list(); 返回集合,不止一條記錄

輸出結果

user user = (user)query.uniqueresult(); // 返回一條物件,一條記錄

system.out.println(user); //輸出結果

tx.commit(); // 提交事務

session.close(); //關閉session

1>使用?號佔位符
session session = hibernateutil.getsession(); // 獲取session

transaction tx = session.begintransaction(); // 開啟事務

string hql = "from user where id = ?"; // 1.查詢所有user類物件

query query= session.createquery(hql); //2.根據hql語句獲得建立查詢物件

query.setparameter(0, 1); // 3.設定引數 ,注意:?號從0開始數.

user user = (user)query.uniqueresult(); // 4.返回一條物件,一條記錄

system.out.println(user); //輸出結果

tx.commit(); // 提交事務

session.close(); //關閉session

2>使用命名佔位符

命名佔位符是在hql語句中以 : 開頭,後面自己設定屬性名,一般與類屬性相同。

例:"from user where id = :id"

session session = hibernateutil.getsession(); // 獲取session

transaction tx = session.begintransaction(); // 開啟事務

string hql = "from user where id = :id"; // 1.查詢所有user類物件,

query query= session.createquery(hql); //2.根據hql語句獲得建立查詢物件

query.setparameter("id", 1); // 3.設定引數 ,

user user = (user)query.uniqueresult(); // 4.返回一條物件,一條記錄

system.out.println(user); //輸出結果

tx.commit(); // 提交事務

session.close(); //關閉session

session session = hibernateutil.getsession(); // 獲取session

transaction tx = session.begintransaction(); // 開啟事務

string hql = "from user"; // 1.查詢所有user類物件,

query query= session.createquery(hql); //2.根據hql語句獲得建立查詢物件

//3.設定分頁資訊limit ?,?

query.setfirstresult(2); // 設定起點

query.setmaxresults(2); // 設定查詢最大記錄數

listlist = query.list(); // 4.返回list集合,多條記錄

system.out.println(list); //輸出結果

tx.commit(); // 提交事務

session.close(); //關閉session

hibernate中使用儲存過程

hibernate中使用儲存過程 如果底層資料庫 如oracle 支援儲存過程,也可以通過儲存過程來執行批量更新。儲存過程直接在資料庫中執行,速度更加快。在oracle資料庫中可以定義乙個名為batchupdatestudent 的儲存過程,如下 create or replace procedur...

在Eclipse中使用Hibernate 四

產生資料庫中的表 很清楚,你可以用hibernate synchronizer來做靈巧的事情。我會在我自己的hibernate專案中使用該外掛程式嗎?這個想法有其它一些優缺點需要考慮,可能現在還不是做決定的時候,直到需要用hibernate來取代自家釀 當然非常簡單 的 已經在工作的輕量級o r工具...

hibernate中使用enum型別

1.在pojo 實體類中定義了乙個customer 類和乙個枚舉子類partner.class customer class enum partner 在寫入資料庫的時候,可以選擇寫入int 型別或者string 型別.這個取決於配置.下面的配置是寫入字串到資料庫中 import j ax.pers...