select
s.num, s.product_id, p.product_name, p.product_title, p.product_intro, p.product_picture, p.product_price, p.product_selling_price
FROM shopping_cart AS s
INNER JOIN product AS p
ON s.product_id = p.product_id
WHERE s.shopping_cart_id
in ( ? , ? , ? )
终于,我发现mybatis执行的语句中,三个问号插入的值是固定的0,1,2
也就是循环插入出了问题
果然,我错误的使用了标签index
04 解决方式
只要认真检查mybatis的映射文件,我的话是把标签换成即可,以下是修改后的mybatis映射文件
xml复制代码
<resultMap id="shoppingCartProduct" type="shoppingCartProductVo">
<id property="shoppingCartId" column="shopping_cart_id"></id>
<result property="productId" column="product_id"></result>
<result property="num" column="num"></result>
<result property="productName" column="product_name"></result>
<result property="productTitle" column="product_title"></result>
<result property="productIntro" column="product_intro"></result>
<result property="productPicture" column="product_picture"></result>
<result property="productPrice" column="product_price"></result>
<result property="productSellingPrice" column="product_selling_price"></result>
</resultMap>
<select id="selectShoppingCartByIds" resultMap="shoppingCartProduct">
select
s.shopping_cart_id,
s.num,
s.product_id,
p.product_name,
p.product_title,
p.product_intro,
p.product_picture,
p.product_price,
p.product_selling_price
FROM
shopping_cart AS s
left JOIN
product AS p
ON s.product_id = p.product_id
WHERE
s.shopping_cart_id
in (<foreach collection="list" item="id" separator=",">
#{id}
</foreach>)
</select>