mybatis聯(lián)合查詢多參數(shù)實(shí)現(xiàn)方式

平時(shí)使用mybatis都不怎么自己寫這些SQL配置文件的一些東西,除了一些比較特殊的需要實(shí)現(xiàn)時(shí)才會(huì)去自己寫sql。

今天遇到了一個(gè)關(guān)于mybatis的問(wèn)題,就是在使用聯(lián)合查詢時(shí) 需要傳入多個(gè)參數(shù)。具體的例子來(lái)了:

public interface ShopCategoryyMapper{
    public List<PaShopCategoryDTO> queryShopCategoryCommodityByShopId(int shopid);
}

DAO接口就是這個(gè)問(wèn)題,但是這個(gè)查詢的需求不是命名的意思,其實(shí)還有中間的含義,要獲取店鋪分類,然后按分類得到商品。所以需求分解就是,通過(guò)店鋪的ID獲取到店鋪分類,然后通過(guò)獲取的分類 在去獲取對(duì)應(yīng)店鋪分類的下的商品數(shù)據(jù)。相關(guān)的表包括 commodity,shop_category,shop_category_commodity。

第一步

    <select id="queryShopCategoryCommodityByShopId" parameterType="java.lang.Integer"           resultMap="QueryLastBaseResultMap">
        SELECT * FROM shop_category  WHERE SHOP_ID = #{shopid} 
    </select>

第二步

 <resultMap id="QueryLastBaseResultMap" type="PaShopCategoryDTO">
    <id column="ID" jdbcType="INTEGER" property="id"/>
    <id column="SHOP_ID" jdbcType="INTEGER" property="shopId"/>
    <association property="commodities" column="{id=ID,shopid=SHOP_ID}" select="QueryCommodity"/>
</resultMap>

重點(diǎn)就在association 中,association本身表示就是聯(lián)合查詢,column表示的就是哪一行作為參數(shù)。{id=ID,shopid=SHOP_ID}的意思就是把這個(gè)作為一個(gè)Map參數(shù)傳入。select表示的是調(diào)用哪個(gè)查詢 ID對(duì)應(yīng)即可。

第三步

<select id="QueryCommodity" parameterType="java.util.Map" resultMap="BaseResultCommodityMap"></select>

SQL不是重點(diǎn),select 中的ID 對(duì)應(yīng)上,重點(diǎn)在parameterType,里面使用的是map。這說(shuō)明我們?cè)?code>column中的參數(shù) 當(dāng)做了Map。這樣在下面的SQL中我們就可以使用 #{key}來(lái)傳入?yún)?shù)。 over!

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

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

  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,537評(píng)論 19 139
  • 官方文檔 簡(jiǎn)介 入門 XML配置 XML映射文件 動(dòng)態(tài)SQL Java API SQL語(yǔ)句構(gòu)建器 日志 一、 JD...
    拾壹北閱讀 3,648評(píng)論 0 52
  • Spark SQL, DataFrames and Datasets Guide Overview SQL Dat...
    草里有只羊閱讀 18,545評(píng)論 0 85
  • 1. 簡(jiǎn)介 1.1 什么是 MyBatis ? MyBatis 是支持定制化 SQL、存儲(chǔ)過(guò)程以及高級(jí)映射的優(yōu)秀的...
    笨鳥(niǎo)慢飛閱讀 6,226評(píng)論 0 4
  • 智慧社區(qū)是在中國(guó)城市化趨勢(shì)下,隨著智慧城市的概念的提出應(yīng)運(yùn)而生的,智慧城市要成功運(yùn)行必然依托智慧社區(qū)的建立。而智慧...
    moreartedu閱讀 352評(píng)論 0 0

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