mybatis中使用statementType="STATEMENT"實現動態傳入字段名時一直報語句錯誤,但實際上語句并沒有毛病,爬了一天坑才找到問題,記錄一下。
?整條語句中里所有傳入的值都要使用${xxx},不能使用#{xxx}。
<select id="listMap" resultMap="Goodsbarcodes" parameterType="java.util.Map" statementType="STATEMENT">select * from goodsbarcodewhere 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>
?