问题:
mybatis如果是传递一个参数的时候,此时是没有任何问题的,如:
Seckill queryById(long seckillId);
<select id="queryById" resultType="Seckill" parameterType="long">
select
seckill_id,name,number,start_time,
end_time,create_time
from
seckill where seckill_id=#{seckillId}
</select>
但是如果我们传递的是两个参数的时候,就会出现问题,如:
List<Seckill> queryAll(int offset, int limit);
<select id="queryAll" resultType="Seckill">
select
seckill_id,name,number,start_time,
end_time,create_time
from
seckill
order by create_time desc
limit #{offset},#{limit}
</select>
解决方案:
1.在接口层中使用注解:
List<Seckill> queryAll(@Param("offset")int offset, @Param("limit")int limit);
2.在xml文件中使用数字的方式:
<select id="queryAll" resultType="Seckill">
select
seckill_id,name,number,start_time,
end_time,create_time
from
seckill
order by create_time desc
limit #{0},#{1}
</select>
注意,这里使用的数字对应的是参数从0开始取值