日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

Mybatis框架實現一對多查詢兩種不同的實現方式

 

在上篇文章分享了MyBatis框架實現了一對一查詢操作,但是在開發中一對多查詢操作更為常用。其實在平時生活中一對多關系就有很多,就比如一個部門下面可以有多個員工,而其中的一個員工也屬于一個部門等等。

接下來我們就來學習一下如何在項目中實現一對多的查詢操作呢。

一對多查詢與上一篇一對一查詢的方式一致,但不同的是在mApper配置文件中一對一查詢使用的是association標簽,而一對多查詢使用的是collection標簽。

這里以部門和員工為例講解一對多級聯查詢操作,一個部門下面關聯著多個員工。

創建兩張數據表,一個是部門表,一個是員工表,這兩張表具有一對多的關聯關系,在員工表添加外鍵dept_id字段去關聯部門表的主鍵dept_id字段。

t_dept 部門表

Mybatis框架實現一對多查詢兩種不同的實現方式

 

t_employee 員工表

Mybatis框架實現一對多查詢兩種不同的實現方式

 

創建兩張表對應的實體bean類。

Dept部門類

Mybatis框架實現一對多查詢兩種不同的實現方式

 


Mybatis框架實現一對多查詢兩種不同的實現方式

 

Employee員工類

Mybatis框架實現一對多查詢兩種不同的實現方式

 


Mybatis框架實現一對多查詢兩種不同的實現方式

 

現在讓我們看看如何獲取部門信息以及其所對應的員工列表信息。

其實和一對一映射一樣,我們可以兩種方式實現,分別是嵌套結果和分步查詢兩種方式,都可以實現一對多映射查詢。

1.嵌套結果,執行一個SQL語句(類似于MySQL的連接查詢)

我們可以使用嵌套結果resultMap方式獲得部門及其員工信息,代碼如下:

創建DeptMapper.xml配置文件,代碼如下:

Mybatis框架實現一對多查詢兩種不同的實現方式

 


Mybatis框架實現一對多查詢兩種不同的實現方式

 

在mapper配置文件中,<collection>元素是用來將多行員工結果映射成一個部門Dept對象的一個List集合中。

創建數據操作接口DeptMapper,并在接口中定義getDeptInfo方法。

Mybatis框架實現一對多查詢兩種不同的實現方式

 

創建調用數據接口的DeptService類。

Mybatis框架實現一對多查詢兩種不同的實現方式

 

創建DeptOperTest測試類并測試。

Mybatis框架實現一對多查詢兩種不同的實現方式

 

junit測試之后輸出的結果:

Mybatis框架實現一對多查詢兩種不同的實現方式

 


Mybatis框架實現一對多查詢兩種不同的實現方式

 

2.分步查詢,執行兩個select查詢語句(類似于mysql的子查詢)

我們可以使用嵌套Select語句方式獲得部門及其員工信息,代碼如下:

創建DeptMapper.xml配置文件

Mybatis框架實現一對多查詢兩種不同的實現方式

 


Mybatis框架實現一對多查詢兩種不同的實現方式

 

創建DeptMapper接口

Mybatis框架實現一對多查詢兩種不同的實現方式

 

創建DeptService類

Mybatis框架實現一對多查詢兩種不同的實現方式

 


Mybatis框架實現一對多查詢兩種不同的實現方式

 

創建DeptOperTest測試類

Mybatis框架實現一對多查詢兩種不同的實現方式

 

測試之后輸出的結果:

Mybatis框架實現一對多查詢兩種不同的實現方式

 

注意:部門表和員工表的主鍵id字段名要唯一,例如不能都寫id,如果一樣的話,在查詢的時候就會出現,關聯查詢出來的員工數據只有一條記錄,查不到部門對應下面的所有員工。我之前就是將兩張表的主鍵id字段名都寫為id,導致測試結果查詢出來的員工數據只有一條的情況。

好了,今天的分享就到這里了,希望對大家的學習有所幫助,也可以在下面留言交流。

分享到:
標簽:框架 Mybatis
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定