日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

hibernate setParameter() 動(dòng)態(tài)參數(shù)綁定 條件查詢(xún)

 一本正經(jīng)地胡鬧 2019-10-09

hibernate中對(duì)動(dòng)態(tài)參數(shù)的綁定提供了豐富的支持。

其中參數(shù)綁定有兩種形式。

(1)按參數(shù)的名字進(jìn)行綁定

在hql查詢(xún)語(yǔ)句中定義命名參數(shù),以“ :”開(kāi)頭,形式如下:

Query query =session.createQuery(" from Customer as c where c.name =:customerName");

上面的HQL語(yǔ)句定義了“customerName”命名參數(shù),接下來(lái)調(diào)用Query的setXXX()方法來(lái)綁定參數(shù).

query.setString("customerName",name);

(2) 按參數(shù)位置綁定

在HQL查詢(xún)語(yǔ)句中 用“?”來(lái)定義參數(shù)的位置,形式如下:

Query query =session.createQuery(" from Customer as c where c.name =?");

上面的HQL語(yǔ)句 定義了一個(gè)參數(shù),參數(shù)的第一個(gè)位置為0,接下來(lái)調(diào)用Query的setXXX()方法來(lái)綁定參數(shù).

query.setString(0 , name);

優(yōu)先考慮按名字綁定的方式。

  • 使得程序有較好的可讀性

  • 有利于程序代碼的維護(hù)。按位置綁定方式,如果有多個(gè)參數(shù)在HQL語(yǔ)句中位置改變了,則必須改變綁定參數(shù)的代碼,消弱了程序代碼的健壯性和可維護(hù)性。


Hibernate提供了3個(gè)特殊的參數(shù)綁定方法。
(1)setEntity()方法 : 把參數(shù)與一個(gè)持久化類(lèi)的實(shí)例綁定。例如:以下setEntity()方法把“customer”命名參數(shù)與一個(gè)Customer對(duì)象綁定
session.createQuery("from Order o where o.customer = :customer")
.setEntity("customer",customer).list();


(2) setParameter()方法:綁定任意類(lèi)型的參數(shù)
Query query = session.createQuery( " from Order o where o.id=:id and o.orderNumber like :orderNumber");
query.setParameter(" id" , 1);
//   query.setParameter(" orderNumber",orderNumber,Hibernate.STRING);  //hibernate 3.0的寫(xiě)法。
query.setParameter(" orderNumber",orderNumber, StringType.INSTANCE); //hibernate 4.2的寫(xiě)法

(3)setProperties() 方法:用于把參數(shù)名稱(chēng)與一個(gè)對(duì)象的屬性值綁定,如:
Customer c=new Customer();
c.setName("Tom"); 
c.setAge(20);
Query query =session.createQuery(" from Customer as c where c.name = : name and c.age = :age")
query.setProperties(c) ;

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶(hù)發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶(hù) 評(píng)論公約

    類(lèi)似文章 更多