1. 查詢整個對映物件所有字段//直接from查詢出來的是乙個對映物件,即:查詢整個對映物件所有字段
string hql = "from users";
query query =session.createquery(hql);
list
users =query.list();
for(users user : users)
輸出結果為:
name1 : password1 : 1name2 : password2 : 2name3 : password3 : 3
2.查詢字段
//查詢其中幾個字段
string hql = " select name,passwd from users";
query query =session.createquery(hql);
//預設查詢出來的list裡存放的是乙個object陣列
listlist =query.list();
for(object object : list)
輸出結果為:
name1 : password1
name2 : password2
name3 : password3
3.修改預設查詢結果(query.list())不以object陣列形式返回,以list形式返回
//查詢其中幾個字段,新增new list(),注意list裡的l是小寫的。也不需要匯入包,這樣通過query.list()出來的list裡存放的不再是預設的object陣列了,而是list集合了
string hql = " select new list(name,passwd) from users";
query query =session.createquery(hql);
//預設查詢出來的list裡存放的是乙個object陣列,但是在這裡list裡存放的不再是預設的object陣列了,而是list集合了
listlist =query.list();
for(list user : list)
/**輸出結果為:
name1 : password1
name2 : password2
name3 : password3
*/
4.修改預設查詢結果(query.list())不以object陣列形式返回,以map形式返回
//查詢其中幾個字段,新增new map(),注意map裡的m是小寫的。也不需要匯入包,這樣通過query.list()出來的list裡存放的不再是預設的object陣列了,而是map集合了
string hql = " select new map(name,passwd) from users";
query query =session.createquery(hql);
//預設查詢出來的list裡存放的是乙個object陣列,但是在這裡list裡存放的不再是預設的object陣列了,而是map集合了
listlist =query.list();
for(map user : list)
/**輸出結果為:
name1 : password1
name2 : password2
name3 : password3
*/
5.修改預設查詢結果(query.list())不以object陣列形式返回,以自定義型別返回
6.條件查詢
//條件查詢,引數索引值從0開始,索引位置。通過setstring,setparameter設定引數
string hql = "from users where name=? and passwd=?";
query query =session.createquery(hql);
//第1種方式
"name1");
"password1");
//第2種方式
query.setparameter(0, "name1",hibernate.string);
query.setparameter(1, "password1",hibernate.string);
list
list =query.list();
for(users users : list) //
條件查詢,自定義索引名(引數名):username,:password.通過setstring,setparameter設定引數
string hql = "from users where name=:username and passwd=:password";
query query =session.createquery(hql);
//第1種方式
"username", "name1");
"password", "password1");
//第2種方式,第3個引數確定型別
query.setparameter("username", "name1",hibernate.string);
query.setparameter("password", "password1",hibernate.string);
list
list =query.list();
for(users users : list)
//條件查詢,通過setproperties設定引數
string hql = "from users where name=:username and passwd=:password";
query query =session.createquery(hql);
//myuser類的2個屬性必須和:username和:password對應
myuser myuser = new myuser("name1","password1");
query.setproperties(myuser);
list
list =query.list();
for(users users : list)
7.update 資料
執行sql語句(為什麼要用sql語句,我想是為了執行某些複雜的sql語句吧)
string sql="update table set field = 'test'"session session =hibernatesessionfactory.getsession();
session.createsqlquery(sql).executeupdate();
ts.commit();
執行hql語句
hibernate hql語句如何獲取列舉型別
對列舉enum類中的valueof 方法的理解 檢視api文件知 返回帶指定名稱的指定列舉型別的列舉常量。名稱必須與在此型別中宣告列舉常量所用的識別符號完全匹配。不允許使用額外的空白字元。解釋上面紅色一行的意思 即 我下面的方法public listquerybystatus string stat...
hibernate hql語句如何獲取列舉型別
對列舉enum類中的valueof 方法的理解 檢視api文件知 返回帶指定名稱的指定列舉型別的列舉常量。名稱必須與在此型別中宣告列舉常量所用的識別符號完全匹配。不允許使用額外的空白字元。解釋上面紅色一行的意思 即 我下面的方法public listquerybystatus string stat...
Hibernate hql 多表查詢
string hql select c from col c userrole role where c.id role.columnid and c.id and role.userid this.gethibernatetemplate find hql,new object get 0 上面返...