日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
淺析Hibernate中的多表查詢

Hibernate中有很多值得學習的地方,這里我們主要介紹Hibernate多表查詢功能,看完本文你肯定有不少收獲,希望本文能讓你更多的了解Hibernate多表查詢。

目前創(chuàng)新互聯(lián)建站已為上1000+的企業(yè)提供了網(wǎng)站建設(shè)、域名、網(wǎng)站空間網(wǎng)站托管運營、企業(yè)網(wǎng)站設(shè)計、旺蒼網(wǎng)站維護等服務,公司將堅持客戶導向、應用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。

由于公司項目的需要,我對Hibernate多表查詢多表關(guān)聯(lián)查詢研究了一下,現(xiàn)總結(jié)如下,供朋友參考。 網(wǎng)管聯(lián)盟www.bitsCN.com

一、 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在功能和使用方式上都非常接近于標準的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對應的類名,它的名字一定要和類的名字相同,包括字母的大小寫。別名應該服從首字母小寫的規(guī)則是一個好習慣,這和Java對局部變量的命名規(guī)范是一致的。 網(wǎng)管聯(lián)盟www.bitsCN.com

下面列舉一個完整的例子來說明Hibernate多表查詢(其中粗體是我們要特別注意的地方,相應表tBookInfo和BookSelection的結(jié)構(gòu)和其對應的hbm.xml、class文件就不一一列舉了,有需要詳細了解的朋友,請聯(lián)系我):博客:http://blog.sina.com.cn/u/1237288325

 
 
 
  1. String sTest = "from tBookInfo book, BookSelection sel where book.id = sel.bookId";   
  2. Collection result = new ArrayList();   
  3. Transaction tx = null;   
  4. try {   
  5. Session session = HibernateUtil.currentSession();   
  6. tx = session.beginTransaction();   
  7. Query query = session.createQuery(sql);   
  8. result = query.list();   
  9. tx.commit();   
  10. } catch (Exception e) {   
  11. throw e;   
  12. } finally {   
  13. HibernateUtil.closeSession();   
  14. }   
  15. ArrayList sList = (ArrayList) result;   
  16. Iterator iterator1 = sList.iterator();   
  17. while (iterator1.hasNext()) {   
  18. Object[] o = (Object[]) iterator1.next();   
  19. tBookInfo bookInfo = (tBookInfo) o[0];   
  20. BookSelection bookSelect = (BookSelection) o[1];   
  21. System.out.println("BookInfo-Title: " + bookInfo.getTitle());   
  22. System.out.println("BookSelection-BookSelectionId: " + bookSelect.getId());   
  23. }  

本文題目:淺析Hibernate中的多表查詢
鏈接URL:http://www.5511xx.com/article/djpgscs.html