<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    一路拾遺
    Collect By Finding All The Way ......
    posts - 81,comments - 41,trackbacks - 0

       由于項目的需要,我對Hibernate對多表關聯查詢研究了一下,現總結如下,供朋友參考。

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

      二、 Hibernate與JDBC的區別Hibernate與JDBC的主要區別如下:

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

      2、 Hibernate是一個和JDBC密切關聯的框架,所以Hibernate的兼容性和JDBC驅動,和數據庫都有一定的關系,但是和使用它的Java程序,和App Server沒有任何關系,也不存在兼容性問題。

      3、 Hibernate是做為JDBC的替代者出現的,不能用來直接和Entity Bean做對比。

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

      下面列舉一個完整的例子來說明Hibernate對多個表進行關聯查詢(其中粗體是我們要特別注意的地方,相應表tBookInfo和BookSelection的結構和其對應的hbm.xml、class文件就不一一列舉了,有需要詳細了解的朋友,請聯系我):

    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()); 
    }
     
    posted on 2008-07-25 21:56 胖胖泡泡 閱讀(252) 評論(0)  編輯  收藏

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 亚洲不卡在线观看| 亚洲国产精品人久久电影| 亚洲成熟丰满熟妇高潮XXXXX | 亚洲卡一卡2卡三卡4麻豆| 久久久久久久岛国免费播放 | 亚洲综合校园春色| 很黄很色很刺激的视频免费| 久久亚洲AV成人无码| 曰批全过程免费视频播放网站| 青青草原精品国产亚洲av| **aaaaa毛片免费| 亚洲一区二区免费视频| 国产免费av片在线看| 亚洲国产无线乱码在线观看 | 亚洲国产综合精品中文字幕| 一本岛v免费不卡一二三区| 国产亚洲精品免费视频播放| 中文毛片无遮挡高清免费| 亚洲AV人人澡人人爽人人夜夜| 99国产精品免费视频观看| 亚洲一区二区三区久久久久| 成人午夜大片免费7777| 人妻免费久久久久久久了| 亚洲AV无码精品色午夜果冻不卡| 4444www免费看| 亚洲av综合av一区二区三区| 在线观看亚洲精品福利片| 97在线视频免费| 亚洲精品无码mⅴ在线观看| 亚洲欧洲精品成人久久奇米网| 男女作爱在线播放免费网站| 亚洲三级在线免费观看| 亚洲日本一区二区一本一道| 久久青草91免费观看| 亚洲欧美国产欧美色欲| 亚洲午夜久久久影院| 精品熟女少妇AV免费观看| 中国在线观看免费的www| 国产精品亚洲精品观看不卡| 亚洲精品无码成人片在线观看| 99精品视频在线观看免费专区 |