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

概括Hibernate多表關(guān)聯(lián)查詢

開發(fā) 后端
這里介紹進(jìn)行Hibernate多表關(guān)聯(lián)查詢時,查詢結(jié)果是多個表的笛卡爾積,或者稱為“交叉”連接。包括介紹Hibernate與JDBC的區(qū)別等方面。

本文向大家介紹Hibernate多表關(guān)聯(lián)查詢,可能好多人還不了解Hibernate多表關(guān)聯(lián)查詢,沒有關(guān)系,看完本文你肯定有不少收獲,希望本文能教會你更多東西。

一、Hibernate簡介Hibernate是一個JDO工具

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

二、Hibernate與JDBC的區(qū)別

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

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

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

三、Hibernate多表關(guān)聯(lián)查詢

進(jìn)行Hibernate多表關(guān)聯(lián)查詢時,查詢結(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多表關(guān)聯(lián)查詢(其中粗體是我們要特別注意的地方,相應(yīng)表tBookInfo和BookSelection的結(jié)構(gòu)和其對應(yīng)的hbm.xml、class文件就不一一列舉了,有需要詳細(xì)了解的朋友,請聯(lián)系我):

  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. }  
  11. catch (Exception e) {  
  12. throw e;  
  13. }  
  14. finally {  
  15. HibernateUtil.closeSession();  
  16. }  
  17. ArrayList sList = (ArrayList) result;  
  18. Iterator iterator1 = sList.iterator();  
  19. while (iterator1.hasNext()) {  
  20. Object[] o = (Object[]) iterator1.next();  
  21. tBookInfo bookInfo = (tBookInfo) o[0];  
  22. BookSelection bookSelect = (BookSelection) o[1];  
  23. System.out.println("BookInfo-Title: " + bookInfo.getTitle());  
  24. System.out.println("BookSelection-BookSelectionId: " + bookSelect.getId());  

【編輯推薦】

  1. Hibernate類庫簡單描述
  2. 淺析Hibernate延遲加載
  3. Spring Hibernate簡單討論
  4. 介紹Hibernate版本的更新
  5. 簡單講述Hibernate實例
責(zé)任編輯:佚名 來源: IT168
相關(guān)推薦

2009-09-29 16:29:40

Hibernate查詢

2009-09-23 18:05:48

2021-09-02 18:36:35

SQLWhereOn

2009-06-18 13:58:06

Hibernate多表Hibernate

2017-07-25 15:35:07

MysqlMysql優(yōu)化LIMIT分頁

2009-09-22 15:26:30

Hibernate多表

2009-09-21 16:56:14

Hibernateibatis

2009-09-28 15:24:38

Hibernate V

2009-09-28 17:27:27

Hibernate A

2009-09-24 09:25:10

Hibernate批量

2009-09-25 15:15:54

Hibernate檢索

2009-09-22 13:31:28

Hibernate C

2009-09-22 17:55:51

Spring Hibe

2020-11-05 10:59:45

Mybatis

2012-06-05 02:20:24

JPAJava查詢語言

2009-09-22 09:31:15

Hibernate主鍵

2009-09-27 14:33:01

Hibernate批量

2009-09-28 09:56:53

Hibernate屬性

2009-09-22 09:40:03

cascade和invHibernate

2009-09-22 13:12:25

Hibernateibatis
點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 91五月婷蜜桃综合 | 日本精品久久 | 色妞av| 国产视频2021| 亚洲国产一区二区视频 | 亚洲精品毛片av | 日本久久一区二区三区 | 欧美成人h版在线观看 | 国产a区| 国产亚洲精品美女久久久久久久久久 | 一区二区免费在线观看 | 亚洲成人一区 | 一区二区免费在线观看 | 国产目拍亚洲精品99久久精品 | 国产精品视频综合 | 欧美又大粗又爽又黄大片视频 | 91精品国产91 | 一级黄色毛片子 | 色婷婷av久久久久久久 | 麻豆视频在线免费看 | 久久国产精品视频 | 91精品久久久久久久久中文字幕 | 在线黄av| 国产精品日韩在线观看一区二区 | 久久国内精品 | 欧美黄色片 | 国产免费一区二区三区 | 2020国产在线 | 一区二区三区在线免费观看 | 亚洲精品视频在线看 | 欧美精品一区在线 | 亚洲国产一区视频 | 国产成人精品免费视频大全最热 | 天天夜夜人人 | 99精品网| 亚洲人人 | 激情国产视频 | 国产综合精品一区二区三区 | 中文字幕精品一区 | 中文字幕在线国产 | 亚洲精品久久久久久久久久久久久 |