最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

resultMap標(biāo)簽中里的collection標(biāo)簽詳解

 更新時(shí)間:2022年02月07日 09:41:11   作者:我不會寫代碼啊啊啊  
這篇文章主要介紹了resultMap標(biāo)簽中里的collection標(biāo)簽,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

resultMap標(biāo)簽中的collection標(biāo)簽

collection(一對多)

元素的作用和association元素的作用差不多一樣,事實(shí)上,它們非常類似,也是映射到JavaBean的某個(gè)“復(fù)雜類型” 屬性,只不過這個(gè)屬性是一個(gè)集合列表,即JavaBean內(nèi)部嵌套一個(gè)復(fù)雜數(shù)據(jù)類型(集合)。和使用association元素一樣,我們使用嵌套查詢, 或者從連接中嵌套結(jié)果集。

下面通過一個(gè)示例來演示coeltien 的具體應(yīng)用,示例需求獲取指定用戶的相關(guān)的信息和地址列表。

我們有實(shí)體類Employee如下:

package com.xyj.entity;
import java.util.List;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@NoArgsConstructor
@AllArgsConstructor
public class Employee {
	private int eid;
	private String ename;
	private String epwd;
	private String address;
	private String tel;
	private List<Sport> sports;//職員所參加的所有運(yùn)動(dòng)項(xiàng)目
}

員工間舉行了一個(gè)小型運(yùn)動(dòng)會,又有Sport實(shí)體類如下:

package com.xyj.entity;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@NoArgsConstructor
@AllArgsConstructor
public class Sport {
?? ?private int sportId;
?? ?private String sportName;
?? ?private String sportScore;
}

可知一個(gè)員工可以參加多個(gè)運(yùn)動(dòng)項(xiàng)目,所以我們的Employee對象內(nèi)部嵌套了一個(gè)復(fù)雜數(shù)據(jù)類型的屬性,sports,接下來在EmpDao接口中添加根據(jù)職員id獲取職員參加的項(xiàng)目列表的方法,代碼如下:

List<Employee> findSportsInfoByEmpId(@Param("eid")Integer id);

修改對應(yīng)的映射文件,由于Employee內(nèi)部嵌套了集合對象,因此需要使用collection來實(shí)現(xiàn)結(jié)果映射,實(shí)例代碼如下:

<select id="findSportsInfoByEmpId" resultMap="empmap">
?? ??? ?select e.*,s.*
?? ??? ?from employee as e,sport as s
?? ??? ?where e.eid=s.eid
?? ??? ?and e.eid=#{eid}
?? ?</select>
?? ?
?? ?<resultMap type="Employee" id="empmap">
?? ??? ?<id property="eid" column="eid"/>
?? ??? ?<result property="ename" column="ename"/>
?? ??? ?<result property="epwd" column="epwd"/>
?? ??? ?<result property="address" column="address"/>
?? ??? ?<result property="tel" column="tel"/>
?? ??? ?<!-- collection描述一對多的關(guān)系,ofType是集合所包含的類型,可以寫完整Java類名或別名 ?-->
?? ??? ?<collection property="sports" ofType="Sport">
?? ??? ??? ?<id property="sportId" column="sportid"/>
?? ??? ??? ?<result property="sportName" column="sportname"/>
?? ??? ??? ?<result property="sportScore" column="sportscore"/>
?? ??? ?</collection>
?? ?</resultMap>

最后進(jìn)行測試,查看結(jié)果是否正確:

@org.junit.Test
?? ?public void test() {
?? ??? ?SqlSession session = MyBatisUtils.getSqlSession();
?? ??? ?EmpDao ed = session.getMapper(EmpDao.class);
?? ??? ?List<Employee> list = ed.findSportsInfoByEmpId(1);
?? ??? ?for (Employee emp : list) {
?? ??? ??? ?for (Sport e : emp.getSports()) {
?? ??? ??? ??? ?System.out.println(e);
?? ??? ??? ?}
?? ??? ?}
?? ?}

運(yùn)行結(jié)果: 

在這里插入圖片描述

查詢成功,但是我們的collection標(biāo)簽寫在resultMap標(biāo)簽的內(nèi)部,不能達(dá)到復(fù)用,當(dāng)然是可以復(fù)用的,只需修改代碼如下:

<select id="findSportsInfoByEmpId" resultMap="empmap">
		select e.*,s.*
		from employee as e,sport as s
		where e.eid=s.eid
		and e.eid=#{eid}
	</select>
	
	<resultMap type="Employee" id="empmap">
		<id property="eid" column="eid"/>
		<result property="ename" column="ename"/>
		<result property="epwd" column="epwd"/>
		<result property="address" column="address"/>
		<result property="tel" column="tel"/>
		<collection property="sports" ofType="Sport" resultMap="sportmap"></collection>
	</resultMap>
	
	<resultMap type="Sport" id="sportmap">
		<id property="sportId" column="sportid"/>
		<result property="sportName" column="sportname"/>
		<result property="sportScore" column="sportscore"/>
	</resultMap>

collection標(biāo)簽中各屬性的說明

<result column="name" property="name"/>
<!--
collection定義一個(gè)子集合對象返回
ofType:指定集合里面元素的類型
property屬性設(shè)置集合的屬性名
-->
<collection property="passengers" ofType="Passenger">
<!--
id指的是主鍵,
column是數(shù)據(jù)庫中的列,可以是別名
property映射的是實(shí)體類中的屬性
result是普通列(非主鍵)
-->
<id column="pid" property="id"/>
<result column="pname" property="name"/>
</collection>
</resultMap>

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • java hasNext()使用實(shí)例解析

    java hasNext()使用實(shí)例解析

    這篇文章主要介紹了java hasNext()使用實(shí)例解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-09-09
  • 使用Java Api操作HDFS過程詳解

    使用Java Api操作HDFS過程詳解

    這篇文章主要介紹了使用Java Api操作HDFS過程詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-09-09
  • 使用Spring?Boot如何限制在一分鐘內(nèi)某個(gè)IP只能訪問10次

    使用Spring?Boot如何限制在一分鐘內(nèi)某個(gè)IP只能訪問10次

    有些時(shí)候,為了防止我們上線的網(wǎng)站被攻擊,或者被刷取流量,我們會對某一個(gè)ip進(jìn)行限制處理,這篇文章,我們將通過Spring?Boot編寫一個(gè)小案例,來實(shí)現(xiàn)在一分鐘內(nèi)同一個(gè)IP只能訪問10次,感興趣的朋友一起看看吧
    2023-10-10
  • 解決IDEA中快捷鍵Alt+Enter不能使用的問題

    解決IDEA中快捷鍵Alt+Enter不能使用的問題

    這篇文章主要介紹了解決IDEA中快捷鍵Alt+Enter不能使用的問題,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-12-12
  • SpringBoot的HTTPS配置實(shí)現(xiàn)

    SpringBoot的HTTPS配置實(shí)現(xiàn)

    本文主要介紹了SpringBoot的HTTPS配置實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-04-04
  • SpringBoot?自定義starter?yaml提示失效問題及解決方法

    SpringBoot?自定義starter?yaml提示失效問題及解決方法

    在自定義starter后,必不可少會有properties配置參數(shù)需要指定,而在有時(shí)又不知道為什么出現(xiàn)這個(gè)問題,這篇文章主要介紹了SpringBoot?自定義starter?yaml提示失效問題,需要的朋友可以參考下
    2022-12-12
  • 聊聊Spring——AOP詳解(AOP概覽)

    聊聊Spring——AOP詳解(AOP概覽)

    這篇文章主要介紹了Spring——AOP詳解(AOP概覽),具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • SpringBoot 定制化返回?cái)?shù)據(jù)的實(shí)現(xiàn)示例

    SpringBoot 定制化返回?cái)?shù)據(jù)的實(shí)現(xiàn)示例

    這篇文章主要介紹了SpringBoot 定制化返回?cái)?shù)據(jù)的實(shí)現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • Java原生服務(wù)器接收上傳文件 不使用MultipartFile類

    Java原生服務(wù)器接收上傳文件 不使用MultipartFile類

    這篇文章主要為大家詳細(xì)介紹了Java原生服務(wù)器接收上傳文件,不使用MultipartFile類,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-09-09
  • java實(shí)現(xiàn)紙牌游戲之小貓釣魚算法

    java實(shí)現(xiàn)紙牌游戲之小貓釣魚算法

    這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)紙牌游戲之小貓釣魚算法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-01-01

最新評論

大方县| 江川县| 乌恰县| 东阳市| 郸城县| 社旗县| 大悟县| 山东省| 小金县| 安塞县| 哈密市| 米易县| 丰顺县| 无为县| 枣强县| 资中县| 仁怀市| 修武县| 沂南县| 五寨县| 孟连| 湛江市| 兴城市| 锡林郭勒盟| 梁河县| 丹棱县| 五台县| 贵港市| 友谊县| 怀柔区| 通海县| 浮山县| 盐边县| 镶黄旗| 孝昌县| 皮山县| 抚松县| 小金县| 西乌| 磐石市| 新丰县|