1. 程式人生 > >Mybatis傳入多參問題

Mybatis傳入多參問題

報錯資訊:

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檔案中#{}中一定要是註釋中的引數!