在下面代码中传入List参数时,会报找不到参数的错误
daoMapper接口中:
boolean todayVote(List<Obeject> objects);
daoMapper.xml中
<insert id="todayVote" parameterType="java.util.List">
insert into votes(createDate,voteId,title,content)
VALUES
<foreach collection="objects" item="item" separator="," index="i" open="" close="" >
(CURRENT_DATE (),#{i}+1,#{item.title},#{item.content})
</foreach>
</insert>
结果:
这样写最后会会报 collection中的objects找不到objects列表
原因:
mybatis 中当DAO传入的List参数时 会自动将参数封装成Map参数 而map中的key会自动用list 而value就是你传入的List参数
修改:
知道了原因修改就很简单了,可以将List参数换成Map 参数,再用map<key,value>来调用DAO方法,你也可以将
collection="objects"
改成
collection="list"
问题解决