freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

跟我學(xué)hibernate框架技術(shù)——hibernate分頁(yè)和criteria等接口實(shí)現(xiàn)查詢(xún)數(shù)據(jù)實(shí)例-文庫(kù)吧

2024-10-25 08:43 本頁(yè)面


【正文】 查詢(xún)對(duì)象來(lái)建立查詢(xún) —— 也就是將在 HQL 語(yǔ)句中的 查詢(xún)條件封裝為一個(gè) Criteria 對(duì)象 。主要是通過(guò) Criteria 接口、 Criterion 接口和 Expression 類(lèi)來(lái)實(shí)現(xiàn)。 在實(shí)際應(yīng)用中,使用 Session 的 createCriteria()方法構(gòu)建一個(gè) 實(shí)例,然后把具體的查詢(xún)條件通過(guò) Criteria 的 add()方法加入到 Criteria 實(shí)例中。這樣,程序員可以不使用 SQL 甚至 HQL 的情況下進(jìn)行數(shù)據(jù)查詢(xún) ( 1)什么是 Criteria 接口 楊教授工作室 精心創(chuàng)作的優(yōu)秀程序員 職業(yè)提升必讀系列資料 楊教授工作室,版權(quán)所有,盜版必究 , 6/26 頁(yè) 6 盡管 HQL 極為強(qiáng)大,但是仍然有些開(kāi)發(fā)者希望能夠動(dòng)態(tài)的使用一種面向?qū)ο?API 創(chuàng)建查詢(xún)和設(shè)置查詢(xún)條件,而非在他們的 Java 代碼中嵌入 HQL 字符串。為此, Hibernate 提供了直觀的 Criteria 接口查詢(xún) API。 ( 2) Criteria 接口的定義 接口表示特定持久類(lèi)的一個(gè)查詢(xún),并且 CriteriaSpecification 作為 Criteria 的頂級(jí)接口,在其下面提供了 Criteria 和 DetachedCriteria。 Session 是 Criteria實(shí)例的工廠 Criteria 是在線的,所以它是由 Hibernate Session 進(jìn)行創(chuàng)建的 。 如何應(yīng)用 Criteria 接口實(shí)現(xiàn)查詢(xún) ( 1)首先獲得 Criteria 接口對(duì)象 利用 ()方法來(lái)獲得。 ? public Criteria createCriteria(Class persistentClass) ? public Criteria createCriteria(Class persistentClass,String alias) ? public Criteria createCriteria(String entityName) ? public Criteria createCriteria(String entityName,String alias) 注意: 在使用 Criteria 進(jìn)行查詢(xún)時(shí),主要是要清楚在 Hibernate 中提供了那些類(lèi)和方法來(lái)滿足應(yīng)用開(kāi)發(fā)中的各種查詢(xún)條件的創(chuàng)建和組裝,其 API 的結(jié)構(gòu)層次如何 只有這樣,在使用時(shí),楊教授工作室 精心創(chuàng)作的優(yōu)秀程序員 職業(yè)提升必讀系列資料 楊教授工作室,版權(quán)所有,盜版必究 , 7/26 頁(yè) 7 才可能得心應(yīng)手。 ( 2)應(yīng)用 Criteria 接口中的 add 方法添加查詢(xún)條件 查詢(xún)條件 可以應(yīng) 用 Expression 類(lèi)中的相關(guān)方法或者 Restrictions 類(lèi)中 的相關(guān)方法構(gòu)建。 Criteria 接口主要的功能特性 ( 1)將數(shù)據(jù)查詢(xún)條件封裝為一個(gè)對(duì)象,并且可以方便地進(jìn)行查詢(xún)條件的組裝 利用 Criteria 接口的查詢(xún)主要是 通過(guò)面向?qū)ο蠡脑O(shè)計(jì),將數(shù)據(jù)查詢(xún)條件封裝為一個(gè)對(duì)象 它所提供的“示例查詢(xún)”的方式,能夠根據(jù)已有的對(duì)象,查找數(shù)據(jù)庫(kù)中屬性匹配的其他對(duì)象。 簡(jiǎn)單來(lái)講, Criteria 接口的查詢(xún) 可以看作是傳統(tǒng) SQL 的對(duì)象化表示。 Criteria criteria = ()。 ((userName,zhang))。 ((userSex,new Integer(1)))。 List result=()。 ( 2)主要的特點(diǎn) 這種方法允許動(dòng)態(tài)地指定約束而不是直接操縱字符串,但是,它也丟掉了許多 HQL 的復(fù)雜性或強(qiáng)大功能。另一方面,以條件表示的查詢(xún)比以 HQL 表示的查詢(xún)可讀性差。許多開(kāi)發(fā)者喜歡 QBC,把它認(rèn)為是更復(fù)雜的面向?qū)ο蠓椒?。他們也喜歡查詢(xún)語(yǔ)法在編譯時(shí)解釋和驗(yàn)證的事實(shí),而 HQL 只有在運(yùn)行時(shí)才解釋。 ( 3)所應(yīng)該要注意的問(wèn)題 這里的 criteria 實(shí)例實(shí)際上是 SQL “ Select * from userInfo where userName =’ zhang’ and userSex =1”的封裝(我們可以打開(kāi) Hibernate 的 show_sql 選項(xiàng),以觀察 Hibernate在運(yùn)行期生成的 SQL 語(yǔ)句)。 Hibernate 在運(yùn)行期會(huì)根據(jù) Criteria 中指定的查詢(xún)條件(也就是上面代碼中通過(guò) 方法添加的查詢(xún)表達(dá)式)生成相應(yīng)的 SQL 語(yǔ)句。 為什么要提供 Criteria 接口等條件查詢(xún)方式 ( 1)這種方式的特點(diǎn)是 比較符合 Java 程序員的編碼習(xí)慣,并且具備清晰的可讀性 正因?yàn)榇耍簧?ORM 實(shí)現(xiàn)中都提供了類(lèi)似的實(shí)現(xiàn)機(jī)制(如 Apache OJB)。對(duì)于 Hibernate楊教授工作室 精心創(chuàng)作的優(yōu)秀程序員 職業(yè)提升必讀系列資料 楊教授工作室,版權(quán)所有,盜版必究 , 8/26 頁(yè) 8 的初學(xué)者,特別是對(duì) SQL 了解有限的程序員而言, Criteria Query 無(wú)疑是上手的極佳途徑,相對(duì) HQL, Criteria Query 提供了更易于理解的查詢(xún)手段。 ( 2)代碼示例 Criteria criteria = ()。 ((userName, userName))。 ((userPassWord, userPassWord))。 List result=()。 應(yīng)用示例 ( 1) 下面的代碼示例實(shí)現(xiàn)通過(guò)名字檢索用戶,使用查詢(xún)對(duì)象更簡(jiǎn)單: Criteria criteria = ()。 ( (firstName, zhang) )。 List result = ()。 //等同于 select * from userInfo where firstName link zhang ( 2)利用 Restrictions 來(lái)限定查詢(xún)結(jié)果 類(lèi)定義了獲得某些內(nèi)置 Criterion 類(lèi)型的工廠方法。 List cats = () .add( (name, Iz%) ) .add( ( weight, new Float(minWeight) ) ) .addOrder( (age) ) .list()。 方 法 說(shuō) 明 () equal, = () 參數(shù)為 Map對(duì)象,使用 key/value 進(jìn)行多個(gè)等于的對(duì)比,相當(dāng)于多個(gè) ()的效果 () greaterthan, () lessthan, 楊教授工作室 精心創(chuàng)作的優(yōu)秀程序員 職業(yè)提升必讀系列資料 楊教授工作室,版權(quán)所有,盜版必究 , 9/26 頁(yè) 9 () lessequal, = () 對(duì)應(yīng) SQL 的 between 子句 () 對(duì)應(yīng) SQL 的 like 子句 () 對(duì)應(yīng) SQL 的 in子句 () and 關(guān)系 () or 關(guān)系 () 判斷屬性是否為空,為空返回 true,否則返回 false () 與 ()相反 ( 3)利用 createAlias()或者 createCriteria()方法來(lái)設(shè)定查詢(xún)條件 List cats = () .createCriteria(kittens) .add( (name, Iz%) ) .list()。 List cats = () .createAlias(kittens, kit) .add( (, Iz%) ) .list()。 ( 4)約束可以按邏輯分組 List cats = () .add( (name, Fritz%) ) .add( ( ( age, new Integer(0) ), (age) ) ) .list()。 List cats = () 楊教授工作室 精心創(chuàng)作的優(yōu)秀程序員 職業(yè)提升必讀系列資料 楊教授工作室,版權(quán)所有,盜版必究 , 10/26 頁(yè) 10 .add( ( name, new String[] { Fritz, Izi, Pk } ) ) .add( () .add( (age) ) .add( (age, new Integer(0) ) ) .add( (age, new Integer(1) ) ) .add( (age, new Integer(2) ) ) ) ) .list()。 ( 5)利用投影( Projection)對(duì)象 是 Projection 的實(shí)例工廠,可以通過(guò)調(diào)用 setProjection()應(yīng)用投影到一個(gè)查詢(xún)。 List cats = ()
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1