亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術文章
文章詳情頁

Mybatis中resultMap的使用總結

瀏覽:5日期:2023-10-18 18:42:44

Mybatis的介紹以及使用:http://www.mybatis.org/mybatis-3/zh/index.html

resultMap是Mybatis最強大的元素,它可以將查詢到的復雜數據(比如查詢到幾個表中數據)映射到一個結果集當中。

resultMap包含的元素:

<!--column不做限制,可以為任意表的字段,而property須為type 定義的pojo屬性--><resultMap type='映射的pojo對象'> <id column='表的主鍵字段,或者可以為查詢語句中的別名字段' jdbcType='字段類型' property='映射pojo對象的主鍵屬性' /> <result column='表的一個字段(可以為任意表的一個字段)' jdbcType='字段類型' property='映射到pojo對象的一個屬性(須為type定義的pojo對象中的一個屬性)'/> <association property='pojo的一個對象屬性' javaType='pojo關聯的pojo對象'> <id column='關聯pojo對象對應表的主鍵字段' jdbcType='字段類型' property='關聯pojo對象的主席屬性'/> <result column='任意表的字段' jdbcType='字段類型' property='關聯pojo對象的屬性'/> </association> <!-- 集合中的property須為oftype定義的pojo對象的屬性--> <collection property='pojo的集合屬性' ofType='集合中的pojo對象'> <id column='集合中pojo對象對應的表的主鍵字段' jdbcType='字段類型' property='集合中pojo對象的主鍵屬性' /> <result column='可以為任意表的字段' jdbcType='字段類型' property='集合中的pojo對象的屬性' /> </collection></resultMap>

如果collection標簽是使用嵌套查詢,格式如下:

<collection column='傳遞給嵌套查詢語句的字段參數' property='pojo對象中集合屬性' ofType='集合屬性中的pojo對象' select='嵌套的查詢語句' > </collection>

注意:<collection>標簽中的column:要傳遞給select查詢語句的參數,如果傳遞多個參數,格式為column= ” {參數名1=表字段1,參數名2=表字段2} ;

以下以實例介紹resultMap的用法:一、簡單需求:一個商品的結果映射;

1、創建商品pojo對象:

public class TShopSku { /** * 主鍵ID */ private Long id; /** * 商品名 */ private String skuName; /** * 分類ID */ private Long categoryId; /** * 主鍵ID * @return ID */ public Long getId() {return id; } /** * 主鍵ID, * @param id */ public void setId(Long id) {this.id = id; } /** * 商品名 * @return SKU_NAME 商品名 */ public String getSkuName() {return skuName; } /** * 商品名 * @param skuName 商品名 */ public void setSkuName(String skuName) {this.skuName = skuName == null ? null : skuName.trim(); } /** * 分類ID * @return CATEGORY_ID 分類ID */ public Long getCategoryId() {return categoryId; } /** * 分類ID * @param categoryId 分類ID */ public void setCategoryId(Long categoryId) {this.categoryId = categoryId; }

對應的resultMap:

<resultMap type='com.meikai.shop.entity.TShopSku'> <id column='ID' jdbcType='BIGINT' property='id' /> <result column='SKU_NAME' jdbcType='VARCHAR' property='skuName' /> <result column='CATEGORY_ID' jdbcType='BIGINT' property='categoryId' /></resultMap> 二、商品pojo類添加屬性集合:

一個商品會有一些屬性,現在需要將查詢出的商品屬性添加到商品對象中,首先需要在原商品pojo類的基礎上中添加屬性的集合:

/** * 屬性集合 */ private List<TShopAttribute> attributes; /** * 獲得屬性集合 */ public List<TShopAttribute> getAttributes() {return attributes; }/** * 設置屬性集合 * @param attributes */ public void setAttributes(List<TShopAttribute> attributes) {this.attributes = attributes; }

將Collection標簽添加到resultMap中,這里有兩種方式:

1、嵌套結果:

對應的resultMap:

<resultMap type='com.meikai.shop.entity.TShopSku'> <id column='ID' jdbcType='BIGINT' property='id' /> <result column='SKU_NAME' jdbcType='VARCHAR' property='skuName' /> <result column='CATEGORY_ID' jdbcType='BIGINT' property='categoryId' /> <collection property='attributes' ofType='com.meikai.shop.entity.TShopAttribute' > <id column='AttributeID' jdbcType='BIGINT' property='id' /><result column='attribute_NAME' jdbcType='VARCHAR' property='attributeName' /> </collection></resultMap>

查詢語句:

<select resultMap='basePlusResultMap'> select s.ID,s.SKU_NAME,s.CATEGORY_ID,a.ID,a.ATTRIBUTE_NAME from t_shop_sku s,t_shop_attribute a where s.ID =a.SKU_ID and s.ID = #{id,jdbcType =BIGINT};</select>

2、關聯的嵌套查詢(在collection中添加select屬性):

商品結果集映射resultMap:

<resultMap type='com.meikai.shop.entity.TShopSku'> <id column='ID' jdbcType='BIGINT' property='id' /> <result column='SKU_NAME' jdbcType='VARCHAR' property='skuName' /> <result column='CATEGORY_ID' jdbcType='BIGINT' property='categoryId' /> <collection column='{skuId=ID}' property='attributes' ofType='com.meikai.shop.entity.TShopAttribute' select='getAttribute' > </collection></resultMap>

collection的select會執行下面的查詢屬性語句:

<select resultMap='AttributeResultMap'> select a.ID,s.ATTRIBUTE_NAME from t_shop_attribute a where a.ID = #{skuId,jdbcType =BIGINT};</select>

屬性結果集映射:

<resultMap type='com.meikai.shop.entity.TShopAttribute'> <id column='ID' jdbcType='BIGINT' property='id' /> <result column='ATTRIBUTE_NAME' jdbcType='VARCHAR' property='attributeName' /></resultMap>

BasePlusResultMap包含了屬性查詢語句的Collection

所以通過下面的查詢商品語句就可獲得商品以及其包含的屬性集合:

<select resultMap='BasePlusResultMap'> select s.ID,s.SKU_NAME,s.CATEGORY_ID from t_shop_sku s where s.ID = #{id,jdbcType =BIGINT};</select>

到此這篇關于Mybatis中resultMap的使用總結的文章就介紹到這了,更多相關Mybatis resultMap 使用內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Mybatis 數據庫
相關文章:
主站蜘蛛池模板: 天天影视亚洲 | 国产成人在线视频免费观看 | aa级毛片毛片免费观看久 | 一级黄片毛片 | 免费观看欧美成人禁片 | 国产亚洲欧美视频 | 中文字幕成人乱码在线电影 | 婷婷激情狠狠综合五月 | 37pao成人国产永久免费视频 | 国产美女在线免费观看 | 亚洲高清在线 | 亚洲欧美精品一区 | 亚洲视频在线免费播放 | 国产一区二区三区在线观看视频 | 精品亚洲大全 | 看久久 | 日韩在线视频免费 | 国产成人精品免费视频动漫 | 国产欧美精品综合一区 | 在线亚洲一区二区 | 五月婷婷综合在线视频 | 韩国色网 | 成人性色生活片免费看爆迷你 | 中文字幕乱码一区三区免费 | 深夜爽爽爽gif福利免费 | 亚洲qingse中文久久网 | 成人欧美视频在线看免费 | 日本高清另类videohd | 国产粗大猛烈18p | 中文字幕综合在线 | 天天影视色香欲综合网网站麻豆 | 国产精品搭讪系列在线观看 | 毛片毛片毛片毛片毛片毛片 | 日韩日b | 精品国产一区二区麻豆 | 国产在线拍偷自揄观看视频网站 | 中文字幕yellow在线资源 | 亚洲国产欧美日韩一区二区三区 | 成人中文字幕一区二区三区 | 九九免费观看全部免费视频 | a黄视频|