第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

【MyBatis】學(xué)習(xí)紀(jì)要五:resultMap

標(biāo)簽:
Java MySQL SpringBoot

这一节我们来讲讲 resultMap。因为前面几节已经提供大量实例代码,本节不再引入,需要的,可以进我的github,clone or download import your tool try run (methods)

demo2

欢迎你Star,或者 Follow

首先来分享一个技巧:
domain 别名 @Alias("name")
但不推荐这么用,因为指定实体类的类路径就已经很简化了。

好,下面我们开始今天的内容!

Map
  • Map<Object, Object>
    你只需要这么写 resultType="map"

  • Map<Object, POJO>
    需要接口上指定Map的key @MapKey
resultMap

resultMap 封装格式

<resultMap>
  <id /> 主键 底层有优化
      column:列名
      property:对象的属性
  <result>
</>
关联查询
  • 自定义封装

实例代码:

   <resultMap id="cp" type="City">
      <id column="cId" property="id"/>
      <result column="cName" property="name" />
      <result column="pId" property="province.id" />
      <result column="pName" property="province.name" />
   </resultMap>
  • association

1、association 自定义单个对象的封装规则
属性 属性对象类型

<association property="" javaType=""></>

实例代码:

CityMapper.xml

   <!-- City findById3 (Integer id); -->
   <resultMap id="cp" type="City">
      <id column="cId" property="id"/>
      <result column="cName" property="name" />
      <association property="province" javaType="Province">
         <id column="pId" property="id" />
         <result column="pName" property="name" />
      </association>
   </resultMap>
   <select id="findById3" resultMap="cp">
       SELECT
          c.id    as cId,
          c.name  as cName,
          p.id    as pId,
          p.name  as pName
       FROM
          city c, province p
       WHERE
          c.province_id = p.id
          AND
          c.id = #{id}
   </select>

2、association 分布查询
<association property="" select="......Mpper.get..." column=""></>

实例代码:

CityMapper.xml

    <!--
    association 分步查询
    City findById4 (Integer id);
    -->
   <resultMap id="cp2" type="City">
      <id column="id" property="id"/>
      <result column="name" property="name" />
      <association property="province"
                   select="com.fengwenyi.mybatis.demo2.dao.ProvinceDao.findById2"
                   column="id"
                   ><!--fetchType="lazy" // 懒加载-->
         <id column="id" property="id" />
         <result column="name" property="name" />
      </association>
   </resultMap>
   <select id="findById4" resultMap="cp2">
       SELECT
          *
       FROM
          city
       WHERE
          id = #{id}
   </select>
  • collection
    指定集合里面的元素类型
    <collection property="" ofType=""></>

分布查询
使用延迟加载 lazy:延迟加载 / eager:立即
<collection property="" select="" column="" fetchType="lazy"></>


延迟加载
lazyLoadingEnabled=true

4、多列的时候怎么传?

封装Map

column="{key1=column1, key2=column2,....}"

5、discriminator 鉴别器

MyBatis 可以使用discriminator判断某列的值,然后根据某列的值改变封装行为

<discriminator javaType="" column="">
    <case value="" resultType="">

     </>
</>

实例代码:

   <!--
   测试鉴别器 discriminator
   City findById5 (Integer id);
   -->
   <resultMap id="cp5" type="City">
      <id column="id" property="id"/>
      <result column="name" property="name" />

      <discriminator javaType="String" column="name">
         <case value="巴中" resultType="City">
            <id column="id" property="id"/>
            <result column="id" property="name" />
         </case>
      </discriminator>
   </resultMap>
   <select id="findById5" resultMap="cp5">
       SELECT
          id, name
       FROM
          city
       WHERE
          id = #{id}
   </select>
點(diǎn)擊查看更多內(nèi)容
TA 點(diǎn)贊

若覺得本文不錯(cuò),就分享一下吧!

評(píng)論

作者其他優(yōu)質(zhì)文章

正在加載中
JAVA開發(fā)工程師
手記
粉絲
1.4萬
獲贊與收藏
707

關(guān)注作者,訂閱最新文章

閱讀免費(fèi)教程

  • 推薦
  • 評(píng)論
  • 收藏
  • 共同學(xué)習(xí),寫下你的評(píng)論
感謝您的支持,我會(huì)繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會(huì)直接到老師賬戶
支付方式
打開微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊(cè)有機(jī)會(huì)得

100積分直接送

付費(fèi)專欄免費(fèi)學(xué)

大額優(yōu)惠券免費(fèi)領(lǐng)

立即參與 放棄機(jī)會(huì)
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)

舉報(bào)

0/150
提交
取消