<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 胖胖泡泡 閱讀(251) 評論(0)  編輯  收藏

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


    網站導航:
     
    主站蜘蛛池模板: 成人片黄网站色大片免费观看APP| 亚洲国产欧美日韩精品一区二区三区| 国产精品永久免费| 免费一看一级毛片人| 免费无码又爽又黄又刺激网站| 无码国产亚洲日韩国精品视频一区二区三区| 亚洲最大天堂无码精品区| 西西大胆无码视频免费| 亚洲av无一区二区三区| 四虎永久免费地址在线观看| 深夜免费在线视频| 亚洲女久久久噜噜噜熟女| 久久爰www免费人成| 亚洲欧洲春色校园另类小说| 成人免费无毒在线观看网站| 亚洲a∨无码一区二区| 亚洲国产精品成人久久蜜臀| a免费毛片在线播放| 久久国产亚洲高清观看| 18禁无遮挡无码网站免费| 国产精品亚洲综合一区在线观看| 久久久久亚洲av成人无码电影| 国产免费一区二区三区不卡| 亚洲国产精品yw在线观看| 日韩黄色免费观看| 两个人看的www高清免费视频 | 香蕉视频在线观看免费| 亚洲一区二区精品视频| 免费无码中文字幕A级毛片| 亚洲国产日韩视频观看| 国产亚洲美日韩AV中文字幕无码成人 | 一级毛片免费视频网站| 亚洲成熟xxxxx电影| 免费的一级黄色片| a级毛片在线免费看| 亚洲综合色婷婷在线观看| 亚洲无人区午夜福利码高清完整版| 无码国产精品一区二区免费16| 亚洲伊人久久大香线蕉AV| 亚洲真人无码永久在线| 好大好硬好爽免费视频|