Mybatis傳入多參問題
阿新 • • 發佈:2018-12-16
報錯資訊:
org.apache.ibatis.binding.BindingException: Parameter 'offSet' not found. Available parameters are [0, 1, param1, param2]
由於java沒有儲存形參的記錄,引數offSet會轉成arg0之類,高版本(大概在mybatis3.4左右及以後版本)mybatis不允許這樣寫:
xml:
<select id="queryAll" resultType="Seckill"> select seckill_id,name,number,start_time,end_time,create_time from XXX order by create_time desc LIMIT #{offSet}, #{limit} </select>
java:
List<XXX> queryAll(int offSet, int limit);
正確寫法:
xml:
<select id="queryAll" resultType="Seckill">
select seckill_id,name,number,start_time,end_time,create_time
from XXXX
order by create_time desc
LIMIT #{offset}, #{limit}
</select>
java
List<XXXX> queryAll(@Param("offset") int offSet,@Param("limit") int limit);
注意:
註釋中的引數與Java中定義的引數分別為:offset和offSet,注意區分,我們在xml檔案中#{}中一定要是註釋中的引數!