mybatis批量插入后获取自增ID:
上代码:
Mapper.java
/**
* 批量新增产品元素
*
* @param elementList 产品元素列表
* @return 结果
*/
public int insertOrderElement(List<OrderElement> elementList);
xml文件(主键是Long类型的自增ID)
<insert id="insertOrderElement" parameterType="OrderElement" useGeneratedKeys="true" keyColumn="element_id" keyProperty="elementId">
INSERT INTO mes_order_element
(
product_id, type_id,produce_quantity, start_time,
produce_level, produced_quantity, create_by, create_time
)
VALUES
<foreach collection="elementList" item="element" separator=",">
(
#{element.productId}, #{element.typeId}, #{element.produceQuantity}, #{element.startTime},
#{element.produceLevel}, #{element.producedQuantity}, #{element.createBy}, sysdate()
)
</foreach>
</insert>
实现类中调用Mapper.java中代码(elementIdList即自增ID List):
planMapper.insertOrderElement(elementList);
//获取新增产品元素主键ID
List<Long> elementIdList = elementList.stream().map(p -> p.getElementId()).collect(Collectors.toList());
单条插入数据时:
xml文件中
Dao层
Service
在插入后,作为入参的实体类或者map中对应的主键key已经自动赋完值了