成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

淺析Hibernate中的多表查詢

開發 后端
Hibernate簡介Hibernate是一個JDO工具。它的工作原理是通過文件(一般有兩種:xml文件和properties文件)把值對象和數據庫表之間建立起一個映射關系。

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

由于公司項目的需要,我對Hibernate多表查詢多表關聯查詢研究了一下,現總結如下,供朋友參考。 網管聯盟www.bitsCN.com

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

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

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

◆ Hibernate是一個和JDBC密切關聯的框架,所以Hibernate的兼容性和JDBC驅動,和數據庫都有一定的關系,但是和使用它的Java程序,和App Server沒有任何關系,也不存在兼容性問題。 中國網管論壇bbs.bitsCN.com

◆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對局部變量的命名規范是一致的。 網管聯盟www.bitsCN.com

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

【編輯推薦】

  1. 使用 Struts 2 開發 RESTful 服務
  2. Marc Fasbinder 評論專欄: *** BPM 入門方法
  3. SOA 的面向流程的建模系列之三: 用例建模
  4. 基于CBM, SIMM 和SOMA的SOA***實踐
  5. 對Hibernate中get()與load()不同點分析
責任編輯:仲衡 來源: bitscn
相關推薦

2009-09-15 10:35:11

linq多表查詢

2009-09-17 18:05:15

linq to sql

2009-06-18 13:58:06

Hibernate多表Hibernate

2009-09-25 10:22:35

Hibernate多表

2009-09-17 17:34:23

linq to sql

2009-09-28 17:23:51

Hibernate E

2009-09-21 12:50:34

Hibernate架構

2009-09-21 18:13:11

Hibernate S

2009-09-23 10:19:08

Hibernate分頁

2009-09-23 17:28:55

Hibernate C

2009-06-17 14:17:40

Criteria條件查Hibernate

2009-09-21 17:23:49

Hibernate使用

2009-09-24 11:41:46

Hibernate延遲

2009-09-22 13:09:06

Hibernateorm框架

2009-09-23 13:26:10

Hibernate對象

2009-09-24 10:07:21

Hibernate M

2009-06-17 14:55:26

Hibernate數據

2009-09-23 11:07:11

Hibernate基礎

2009-07-15 17:52:10

2009-09-22 10:23:15

Hibernate配置
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 男人的天堂久久 | 亚洲精品一区二区网址 | 欧美日韩网站 | 一级h片 | 欧美精品成人影院 | 99精品网 | 欧美日韩成人在线 | 日韩综合在线 | 亚洲成人精选 | 四虎影院久久 | 成人一区二 | 人人九九精 | 中文无码日韩欧 | 自拍偷拍亚洲欧美 | 成人精品视频在线观看 | 最新国产在线 | 国产伊人精品 | 国产精品色 | 欧美精品一 | 久久久久久毛片免费观看 | 精品九九 | 亚洲综合大片69999 | 成人综合视频在线 | 欧美高清性xxxxhd | av日韩高清 | 日韩av美女电影 | 亚洲不卡在线观看 | 欧美在线一区二区三区 | 色网在线看 | 国产精品视频一二三区 | 欧美在线视频观看 | 亚洲精品久久国产高清情趣图文 | 久久国产精品-国产精品 | 国产第一页在线播放 | 亚洲精品久久久久久宅男 | 国产精品无 | 国产欧美二区 | 在线国产视频 | 在线免费小视频 | 日韩综合一区 | www.成人免费视频 |