Hibernate中的多表查詢怎么實現(xiàn)

本篇內(nèi)容介紹了“Hibernate中的多表查詢怎么實現(xiàn)”的有關(guān)知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細閱讀,能夠?qū)W有所成!

舒城ssl適用于網(wǎng)站、小程序/APP、API接口等需要進行數(shù)據(jù)傳輸應(yīng)用場景,ssl證書未來市場廣闊!成為創(chuàng)新互聯(lián)公司的ssl證書銷售渠道,可以享受市場價格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:13518219792(備注:SSL證書合作)期待與您的合作!

一、 Hibernate簡介Hibernate是一個JDO工具。它的工作原理是通過文件(一般有兩種:xml文件和properties文件)把值對象和數(shù)據(jù)庫表之間建立起一個映射關(guān)系。這樣,我們只需要通過操作這些值對象和Hibernate提供的一些基本類,就可以達到使用數(shù)據(jù)庫的目的。例如,使用Hibernate的查詢,可以直接返回包含某個值對象的列表(List),而不必向傳統(tǒng)的JDBC訪問方式一樣把結(jié)果集的數(shù)據(jù)逐個裝載到一個值對象中,為編碼工作節(jié)約了大量的時間。Hibernate提供的HQL是一種類SQL語言,它和EJBQL一樣都是提供對象化的數(shù)據(jù)庫查詢方式,但HQL在功能和使用方式上都非常接近于標(biāo)準(zhǔn)的SQL. 中國網(wǎng)管聯(lián)盟www_bitscn_com

二、 Hibernate與JDBC的區(qū)別Hibernate與JDBC的主要區(qū)別如下:

◆ Hibernate是JDBC的輕量級的對象封裝,它是一個獨立的對象持久層框架,和App Server,和EJB沒有什么必然的聯(lián)系。Hibernate可以用在任何JDBC可以使用的場合,從某種意義上來說,Hibernate在任何場合下取代JDBC.

◆ Hibernate是一個和JDBC密切關(guān)聯(lián)的框架,所以Hibernate的兼容性和JDBC驅(qū)動,和數(shù)據(jù)庫都有一定的關(guān)系,但是和使用它的Java程序,和App Server沒有任何關(guān)系,也不存在兼容性問題。 中國網(wǎng)管論壇bbs.bitsCN.com

◆Hibernate是做為JDBC的替代者出現(xiàn)的,不能用來直接和Entity Bean做對比。

三、 Hibernate 進行多表關(guān)聯(lián)查詢Hibernate對多個表進行查詢時,查詢結(jié)果是多個表的笛卡爾積,或者稱為“交叉”連接。 例如:from Student, Book from Student as stu, Book as boo from Student stu, Book boo注意:讓查詢中的Student和Book均是表student和book對應(yīng)的類名,它的名字一定要和類的名字相同,包括字母的大小寫。別名應(yīng)該服從首字母小寫的規(guī)則是一個好習(xí)慣,這和Java對局部變量的命名規(guī)范是一致的。

下面列舉一個完整的例子來說明Hibernate多表查詢

String sTest = "from tBookInfo book, BookSelection sel where book.id = sel.bookId";   Collection result = new ArrayList();   Transaction tx = null;   try {   Session session = HibernateUtil.currentSession();   tx = session.beginTransaction();   Query query = session.createQuery(sql);   result = query.list();   tx.commit();   } catch (Exception e) {   throw e;   } finally {   HibernateUtil.closeSession();   }   ArrayList sList = (ArrayList) result;   Iterator iterator1 = sList.iterator();   while (iterator1.hasNext()) {   Object[] o = (Object[]) iterator1.next();   tBookInfo bookInfo = (tBookInfo) o[0];   BookSelection bookSelect = (BookSelection) o[1];   System.out.println("BookInfo-Title: " + bookInfo.getTitle());   System.out.println("BookSelection-BookSelectionId: " + bookSelect.getId());   }

“Hibernate中的多表查詢怎么實現(xiàn)”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實用文章!

網(wǎng)頁名稱:Hibernate中的多表查詢怎么實現(xiàn)
標(biāo)題來源:http://muchs.cn/article32/ipijpc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)頁設(shè)計公司、標(biāo)簽優(yōu)化、網(wǎng)站排名、App開發(fā)、、外貿(mào)網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

綿陽服務(wù)器托管