最近项目需要批量插入一批数据,然后根据这批数据的id,再插入关联表;
需要使用mybatis的版本为3.3.1,之前使用3.2.8的没返回主键id
参考:https://github.com/mybatis/mybatis-3/pull/547
service层:
public void saveDeskBatch(List<ShopDeskSortDto> shopDeskSortDtoList) {
List<ShopDeskSort> shopDeskSortList = new ArrayList<ShopDeskSort>();
shopDeskSortList = CollectionUtils.transform(shopDeskSortDtoList, ShopDeskSort.class);
shopDeskSortMapper.saveBatch(shopDeskSortList);
}
xml文件
<insert id="saveBatch" parameterType="java.util.List" useGeneratedKeys="true" keyProperty="id">
<![CDATA[
INSERT INTO shop_desk_sort (
id,
name,
parent_id,
shop_id
) VALUES
]]>
<foreach collection="list" item="item" index="index" separator=",">
(#{item.id},#{item.name},#{item.parentId},#{item.shopId})
</foreach>
</insert>
比之前单个插入速度得到明显提升,飞起。。。
2017年3月12日10:58:11
升级3.3.1之后,项目出现许多不兼容。。。