中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Hibernate多表關聯查詢怎么實現

發布時間:2021-12-04 16:35:14 來源:億速云 閱讀:580 作者:iii 欄目:編程語言

本篇內容介紹了“Hibernate多表關聯查詢怎么實現”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

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

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

二、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文件就不一一列舉了,有需要詳細了解的朋友,請聯系我):

  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());  

“Hibernate多表關聯查詢怎么實現”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

江源县| 庄河市| 中超| 建宁县| 吴堡县| 宿松县| 台中县| 南京市| 周宁县| 通河县| 错那县| 平顶山市| 神木县| 泌阳县| 泗阳县| 博野县| 闵行区| 旌德县| 毕节市| 武清区| 滕州市| 竹溪县| 高州市| 阿合奇县| 松原市| 江山市| 怀来县| 元江| 康保县| 呼图壁县| 科技| 织金县| 六枝特区| 温泉县| 西青区| 泾川县| 托里县| 武汉市| 光山县| 烟台市| 敖汉旗|