批量插入报错: No value specified for parameter
先上代码和xml文件:
错误:
### Cause: java.sql.SQLException: No value specified for parameter 9
; bad SQL grammar []; nested exception is java.sql.SQLException: No value specified for parameter 9
代码:
List<HwcListingData> theList = new ArrayList<>();hwcListingDataMapper.insertBatch(theList);
xml:
<insert id="insertBatch"><foreach collection="list" item="item" separator=";">insert into hwc_listing_data_item(hwc_uid,shop_id,shop_name,name_cn,name_en,amazonsite,price,asin_url) values (#{item.hwcUid},#{item.shopId},#{item.shopName},#{item.nameCn},#{item.nameEn},#{item.amazonsite},#{item.price},#{item.asinUrl})</foreach></insert>
事实证明,这个xml写法并不是这么写的。要改成这样才可以。
<insert id="insertBatch">insert into qr_hwc_listing_data_item(hwc_uid,shop_id,shop_name,name_cn,name_en,amazonsite,price,asin_url) values<foreach collection="list" item="item" separator=",">(#{item.hwcUid},#{item.shopId},#{item.shopName},#{item.nameCn},#{item.nameEn},#{item.amazonsite},#{item.price},#{item.asinUrl})</foreach></insert>
修正xml的位置即可。