Mybatis使用statementType="STATEMENT"实现动态传入表名或字段名


mybatis中使用statementType="STATEMENT"实现动态传入字段名时一直报语句错误,但实际上语句并没有毛病,爬了一天坑才找到问题,记录一下。

 整条语句中里所有传入的值都要使用${xxx},不能使用#{xxx}

 <select id="listMap" resultMap="Goodsbarcodes" parameterType="java.util.Map" statementType="STATEMENT">
     
     select * from goodsbarcode
         where serialNo  like '%${serialno}%' and sku like '%${sku}%'
         
         <if test="timetype != null and timetype!='' and fristTimes != null and fristTimes!='' and lastTimes != null and lastTimes!=''" >
             and ${timetype}    BETWEEN '${fristTimes}' and '${lastTimes}'
         </if>
         <if test="state != null and state!='' and state == '0'.toString()" >
             and ${stateName} ='${paramTemp}'    
         </if>
         <if test="state != null and state!='' and state == '1'.toString()" >
             and ${stateName}  !='${paramTemp}'
         </if>
         <if test="state != null and state!='' and state == '2'.toString()" >
             and ${stateName}  !='${paramTemp}'
         </if>
         <![CDATA[    
         limit ${page},${rows}
         ]]>
     </select> 

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM