Mapper的java文件
List<BusModelManage> getMemberModel(List<Long> ids);
xml文件:
<select id="getMemberModel" resultType="com.whzsh.mpg.bus.entity.BusModelManage">
SELECT
bmm.`model_name`,
bmm.`icon`,
bmm.`address`,
bmm.`show`
FROM
`bus_model_manage` bmm
WHERE
bmm.`show` =1
AND
bmm.`id` in
<foreach item="item" collection="ids" separator="," open="(" close=")" index="">
#{
item}
</foreach>
</select>
但是报错org.apache.ibatis.binding.BindingException: Parameter 'ids' not found. Available parameters are [collection, list]
应该是没识别参数,解决方案有两种:
方法一:修改Mapper文件:
把ids前面加上@Param,就可以
List<BusModelManage> getMemberModel(@Param("ids") List<Long> ids);
方法二:修改xml文件
<select id="getMemberModel" resultType="com.whzsh.mpg.bus.entity.BusModelManage">
SELECT
bmm.`model_name`,
bmm.`icon`,
bmm.`address`,
bmm.`show`
FROM
`bus_model_manage` bmm
WHERE
bmm.`show` =1
AND
bmm.`id` in
<foreach item="item" collection="list" separator="," open="(" close=")" index="">
#{
item}
</foreach>
</select>
把collection改为list就可以了
传入list有两种情况
方法一、自带()
<insert id="IdentityModel">
insert into bus_identity_model(model_id,identity_id) values
<foreach
collection="list"
item="item"
index="index"
separator=",">
(#{
item.modelId},#{
item.identityId})
</foreach>
</insert>
方法二、传入()
<select id="getMemberModel" resultType="com.whzsh.mpg.bus.entity.BusModelManage">
SELECT
bmm.`model_name`,
bmm.`icon`,
bmm.`address`,
bmm.`show`
FROM
`bus_model_manage` bmm
WHERE
bmm.`show` =1
AND
bmm.`id` in
<foreach item="item" collection="ids" separator="," open="(" close=")" index="">
#{
item}
</foreach>
</select>