mybatis 多表關(guān)聯(lián)查詢

首先這里有兩個表分別是seckill(秒殺表),success_killed(秒殺成功明細(xì)表)兩個表和seckill和successkilled兩個實(shí)體類
seckill表:


image.png

success_killed:


image.png

連個表是靠seckill_id這個字段來進(jìn)行關(guān)聯(lián)的
1.一對一關(guān)系的時候:在seckill實(shí)體類中添加successkilled屬性
private SuccessKilled successKilled;
在xml配置文件中配置如下:

   <resultMap id="seckillMap" type="Seckill">
        <id column="seckill_id" property="seckillId"></id>
        <result property="name" column="name"/>
        <result property="number" column="number"/>
        <result property="startTime" column="start_time"/>
        <result property="endTime" column="end_time"/>
        <result property="createTime" column="create_time"/>      
        <association property="successKilled" javaType="SuccessKilled">
            <result property="userPhone" column="user_phone"/>
            <result property="state" column="state"/>
            <result property="createTime" column="ctime"/>
        </association>
    </resultMap>
  <select id="findundetailById" resultMap="seckillMap">
     select se.seckill_id as seckill_id,
      se.name,
      se.number,
      se.start_time,
      se.end_time,
      se.create_time,
      su.seckill_id as sid,
      su.user_phone,
      su.state,
      su.create_time as ctime
      from seckill se LEFT JOIN success_killed su
     on se.seckill_id = su.seckill_id
     <where>
         <if test="id !=null">se.seckill_id = #{id}</if>
     </where>
  </select>

在result中添加<association>標(biāo)簽,其中property 屬性為實(shí)體類種的屬性名字,column 屬性為sql中查詢出來的列的名字(有別名的時候是別名的名稱,并且不能讓列名相同)
2.一對多關(guān)系的時候,在seckill實(shí)體類中添加successkilled屬性
private List<SuccessKilled > successKilleds;
在xml配置文件中配置如下:

   <resultMap id="seckillMap" type="Seckill">
        <id column="seckill_id" property="seckillId"></id>
        <result property="name" column="name"/>
        <result property="number" column="number"/>
        <result property="startTime" column="start_time"/>
        <result property="endTime" column="end_time"/>
        <result property="createTime" column="create_time"/>      
        <collection property="successKilleds" 
                ofType="com.ygf.domain.SuccessKilled">
<!--  這里的column對應(yīng)的是下面查詢的別名,而不是表字段名   -->
<!-- property對應(yīng)JavaBean中的屬性名 -->
        <id property="seckillId" column="sid"></id>
        <result property="userPhone" column="user_phone"/>
        <result property="state" column="state"/>
        <result property="createTime" column="ctime"/>
        </collection>
    </resultMap>

在result中添加<collection>標(biāo)簽 其中property為實(shí)體類中的屬性名,ofType為實(shí)體類。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,578評論 19 139
  • 一步一步的搭建JAVA WEB項(xiàng)目,采用Maven構(gòu)建,基于MYBatis+Spring+Spring MVC+B...
    葉子的翅膀閱讀 12,903評論 5 25
  • 前言 本篇將完成DAO層的設(shè)計與開發(fā),包括: 數(shù)據(jù)庫、DAO實(shí)體與接口設(shè)計與編碼 基于MyBatis實(shí)現(xiàn)DAO編程...
    MOVE1925閱讀 1,482評論 0 4
  • 1. 簡介 1.1 什么是 MyBatis ? MyBatis 是支持定制化 SQL、存儲過程以及高級映射的優(yōu)秀的...
    笨鳥慢飛閱讀 6,248評論 0 4
  • Spring Boot 參考指南 介紹 轉(zhuǎn)載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 47,275評論 6 342

友情鏈接更多精彩內(nèi)容