Hibernate的批量查詢

2021-09-07 19:17:09 字數 4469 閱讀 3741

1.hql基本查詢

(1)查詢所有的基本語句

@test

//hql查詢所有資料

public

void

fun1()

結果:

hibernate: 

select

customer0_.cust_id

ascust_id1_0_,

customer0_.cust_name

ascust_nam2_0_,

customer0_.cust_source

ascust_sou3_0_,

customer0_.cust_industry

ascust_ind4_0_,

customer0_.cust_level

ascust_lev5_0_,

customer0_.cust_linkman

ascust_lin6_0_,

customer0_.cust_phone

ascust_pho7_0_,

customer0_.cust_mobile

ascust_mob8_0_

from

cst_customer customer0_

[customer [cust_id=1, cust_name=*********x

], customer [

cust_id=2, cust_name=聯想

]]

改進:如果整個專案中只有乙個類的名字可以省略包路徑,也就是可以只寫類名:

@test

//hql查詢所有資料

public

void

fun1()

(2)根據主鍵查詢單個

@test

//hql查詢單個資料

public

void

fun2()

2.hql條件查詢:

(1)?佔位符查詢

類似於jdbc的佔位符,只是hibernate的?下標從0開始,而jdbc的下標從1開始,基本上所有的程式設計索引都從0開始,唯獨jdbc從1開始。。。。

@test

//hql的?佔位符查詢

public

void

fun3()

(2)命令佔位符   :name格式的查詢,固定格式,name隨便起,習慣性的起做和條件名字一樣

@test

//hql的命令佔位符查詢

public

void

fun4()

3.hql排序與分頁查詢

分頁查詢類似於mysql的limit關鍵字,limit start,pagesize。。。。。。

@test

//hql分頁查詢

public

void

fun5()

結果:

hibernate: 

select

customer0_.cust_id

ascust_id1_0_,

customer0_.cust_name

ascust_nam2_0_,

customer0_.cust_source

ascust_sou3_0_,

customer0_.cust_industry

ascust_ind4_0_,

customer0_.cust_level

ascust_lev5_0_,

customer0_.cust_linkman

ascust_lin6_0_,

customer0_.cust_phone

ascust_pho7_0_,

customer0_.cust_mobile

ascust_mob8_0_

from

cst_customer customer0_ limit ?,

?

[customer [cust_id=2, cust_name=新增資料], customer [cust_id=1, cust_name=程式設計師111]]

criteria查詢相比於上面的hql查詢要簡單的多。

@test

//查詢所有

public

void

test1()

結果:

[customer [cust_id=1, cust_name=程式設計師111], customer [cust_id=2, cust_name=新增資料], customer [cust_id=3, cust_name=測試名稱222], customer [cust_id=4, cust_name=測試名稱222]]

@test

//根據id查詢單個,條件查詢

public

void

test2()

結果:customer [cust_id=1, cust_name=程式設計師111]

條件列表:

//分頁查詢

public

void

test3()

結果:[customer [cust_id=3, cust_name=測試名稱222], customer [cust_id=4, cust_name=測試名稱222]]

@test

//排序和分組

public

void

test5()

結果:[customer [cust_id=4, cust_name=測試名稱222], customer [cust_id=3, cust_name=測試名稱222], customer [cust_id=2, cust_name=新增資料], customer [cust_id=1, cust_name=程式設計師111]]

[新增資料, 測試名稱222, 程式設計師111]

@test

//查詢總數(聚集函式的使用)

public

void

test4()

結果:443

1.查詢結構是陣列集合

@test

//基本查詢--返回陣列list

public

void

test1()

//提交事務

tx.commit();

}

結果[1, 程式設計師111, null, null, null, null, null, null]

[2, 新增資料, null, null, null, null, null, null]

[3, 測試名稱222, null, null, null, null, null, null]

[4, 測試名稱222, null, null, null, null, null, null]

2.查詢結果是物件集合(重要)

@test

//基本查詢--返回物件list

public

void

test2()

結果[customer [cust_id=1, cust_name=程式設計師111], customer [cust_id=2, cust_name=新增資料], customer [cust_id=3, cust_name=測試名稱222], customer [cust_id=4, cust_name=測試名稱222]]

@test

//基本查詢--返回物件list

public

void

test3()

結果customer [cust_id=1, cust_name=程式設計師111]

@test

//基本查詢--查詢總數

public

void

test4()

結果

@test

//基本查詢--分頁查詢

public

void

test5()

結果[customer [cust_id=2, cust_name=新增資料], customer [cust_id=1, cust_name=程式設計師111]]

@test

/*** 原生sql查詢(sqlquery對映查詢結果為map)

*/public

void

fun6()

[, , , , , , ]

@test

//原生sql執行插入操作

public

void

test6()

Hibernate之批量查詢

hql查詢 string hql from student id是student 類中的屬性,不是資料庫的字段 query query seesion.createquery hql list list query.list 設定引數 string hql from student where id...

Hibernate框架 批量查詢

hql查詢 hibernate query language 多表查詢,但不複雜時使用 hibernate獨家查詢語言,屬於物件導向的查詢語言 1 基本查詢 基本查詢 public void fun1 2 條件查詢 2.1 直接查詢 條件查詢 hql語句中,不可能出現任何資料庫相關的資訊的 publ...

hibernate的批量更新 批量刪除

hibernate的批處理api session.createquery hql executeupdate 如果有引數則在執行之前設定引數。批量更新示例 test public void testbatchupdate 批量刪除示例 test public void testbatchdelete...