JAVA-MyBaits對應XML的兩種使用方式

概述xcode

  在使用XML寫SQL語句的時候,遇到參數傳遞的兩種方式,也就是Mapper裏面帶@Param註解和不帶的狀況,容易混淆,對應XML的寫法也不相同,使用的時候要注意對照代碼比對(備註XML裏面的關鍵字containsKey,大小寫都須要正確app

 

Mapper代碼:dom

    List<InIncome101Report> queryListByPeriod(Page<InIncome101Report> page, Map<String,Object> params);//非註解@Param

    List<InIncome101Report> queryListByVoucherdata(Page<InIncome101Report> page, @Param("params") Map<String,Object> params);//帶註解的

XML內容spa

一、非@paramcode

    <select id="queryListByPeriod" resultType="com.dbgo.acme.report.domain.model.InIncome101Report">
        SELECT
        T.supplier_name supplierName,
        T.supplier_tax_code supplierTaxcode,
        COUNT (0) sumCount        
        FROM
        tbl_in_incomedetail T
        WHERE
        T.org_id = #{orgId}
        <if test="_parameter.containsKey('periodstart')">
            AND T.tax_period>= #{periodstart}
        </if>
        <if test="_parameter.containsKey('periodend')">
            AND T.tax_period <![CDATA[<=]]>#{periodend}
        </if>        
        GROUP BY
        T.supplier_name,
        T.supplier_tax_code
    </select>

 

二、帶@paramblog

 <select id="queryListByVoucherdata" resultType="com.dbgo.acme.report.domain.model.InIncome101Report">
        SELECT
        T.suppliername supplierName,
        T.suppliertax_code supplierTaxcode,        
        FROM
        tbl_in_incomedetail T
        WHERE
        T.org_id = #{params.orgId}
        AND T.vouchedata >=#{params.start}
        AND T.vouchedata <![CDATA[<=]]>#{params.end}
        GROUP BY
        T.suppliername ,
        T.suppliertax_code 
    </select>
相關文章
相關標籤/搜索