亚洲视频二区_亚洲欧洲日本天天堂在线观看_日韩一区二区在线观看_中文字幕不卡一区

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

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

Mybatis框架實現(xiàn)一對多查詢兩種不同的實現(xiàn)方式

 

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

接下來我們就來學(xué)習(xí)一下如何在項目中實現(xiàn)一對多的查詢操作呢。

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

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

創(chuàng)建兩張數(shù)據(jù)表,一個是部門表,一個是員工表,這兩張表具有一對多的關(guān)聯(lián)關(guān)系,在員工表添加外鍵dept_id字段去關(guān)聯(lián)部門表的主鍵dept_id字段。

t_dept 部門表

Mybatis框架實現(xiàn)一對多查詢兩種不同的實現(xiàn)方式

 

t_employee 員工表

Mybatis框架實現(xiàn)一對多查詢兩種不同的實現(xiàn)方式

 

創(chuàng)建兩張表對應(yīng)的實體bean類。

Dept部門類

Mybatis框架實現(xiàn)一對多查詢兩種不同的實現(xiàn)方式

 


Mybatis框架實現(xiàn)一對多查詢兩種不同的實現(xiàn)方式

 

Employee員工類

Mybatis框架實現(xiàn)一對多查詢兩種不同的實現(xiàn)方式

 


Mybatis框架實現(xiàn)一對多查詢兩種不同的實現(xiàn)方式

 

現(xiàn)在讓我們看看如何獲取部門信息以及其所對應(yīng)的員工列表信息。

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

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

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

創(chuàng)建DeptMapper.xml配置文件,代碼如下:

Mybatis框架實現(xiàn)一對多查詢兩種不同的實現(xiàn)方式

 


Mybatis框架實現(xiàn)一對多查詢兩種不同的實現(xiàn)方式

 

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

創(chuàng)建數(shù)據(jù)操作接口DeptMapper,并在接口中定義getDeptInfo方法。

Mybatis框架實現(xiàn)一對多查詢兩種不同的實現(xiàn)方式

 

創(chuàng)建調(diào)用數(shù)據(jù)接口的DeptService類。

Mybatis框架實現(xiàn)一對多查詢兩種不同的實現(xiàn)方式

 

創(chuàng)建DeptOperTest測試類并測試。

Mybatis框架實現(xiàn)一對多查詢兩種不同的實現(xiàn)方式

 

junit測試之后輸出的結(jié)果:

Mybatis框架實現(xiàn)一對多查詢兩種不同的實現(xiàn)方式

 


Mybatis框架實現(xiàn)一對多查詢兩種不同的實現(xiàn)方式

 

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

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

創(chuàng)建DeptMapper.xml配置文件

Mybatis框架實現(xiàn)一對多查詢兩種不同的實現(xiàn)方式

 


Mybatis框架實現(xiàn)一對多查詢兩種不同的實現(xiàn)方式

 

創(chuàng)建DeptMapper接口

Mybatis框架實現(xiàn)一對多查詢兩種不同的實現(xiàn)方式

 

創(chuàng)建DeptService類

Mybatis框架實現(xiàn)一對多查詢兩種不同的實現(xiàn)方式

 


Mybatis框架實現(xiàn)一對多查詢兩種不同的實現(xiàn)方式

 

創(chuàng)建DeptOperTest測試類

Mybatis框架實現(xiàn)一對多查詢兩種不同的實現(xiàn)方式

 

測試之后輸出的結(jié)果:

Mybatis框架實現(xiàn)一對多查詢兩種不同的實現(xiàn)方式

 

注意:部門表和員工表的主鍵id字段名要唯一,例如不能都寫id,如果一樣的話,在查詢的時候就會出現(xiàn),關(guān)聯(lián)查詢出來的員工數(shù)據(jù)只有一條記錄,查不到部門對應(yīng)下面的所有員工。我之前就是將兩張表的主鍵id字段名都寫為id,導(dǎo)致測試結(jié)果查詢出來的員工數(shù)據(jù)只有一條的情況。

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

分享到:
標(biāo)簽:框架 Mybatis
用戶無頭像

網(wǎng)友整理

注冊時間:

網(wǎng)站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

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

數(shù)獨大挑戰(zhàn)2018-06-03

數(shù)獨一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學(xué)四六

運動步數(shù)有氧達人2018-06-03

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

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績評定2018-06-03

通用課目體育訓(xùn)練成績評定