mybatis之批量添加问题
作者:寻梦太极
这篇文章主要介绍了mybatis之批量添加问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
mybatis批量添加
接口传入集合,在mybatis里面实现批量插入
<insert id="insert" parameterType="list" > insert into user_word_importance_practice (user_id,word,create_time) VALUES <foreach collection="list" item="wordImportance" separator=","> (#{wordImportance.userId},#{wordImportance.word},#{wordImportance.createTime}) </foreach> </insert>
接口:
//批量添加用户单词重点练习 int insert(List<UserWordImportancePractice> userWordImportancePracticeList);
mybatis批量插入并返回主键
mapper(dao)层
void insertBatch(@Param("measureDealList") List<CorrectPreventionMeasureDeal> measureDealList);
xml
名词解释:
keyProperty: 实体类中的主键字段,如下:
@TableId(value = “measure_deal_id”, type = IdType.AUTO) private Long measureDealId;
useGeneratedKeys:设置useGeneratedKeys参数值为true,在执行添加记录之后可以获取到数据库自动生成的主键ID
<insert id="insertBatch" useGeneratedKeys="true" keyProperty="measureDealId"> INSERT INTO p_correct_prevention_measure_deal (process_id,measure_notice_id,implementation,complete_time,implement_prove,correct_deadline) values <foreach collection="measureDealList" item="item" separator="," index="index" > (#{item.processId},#{item.measureNoticeId},#{item.implementation},#{item.completeTime},#{item.implementProve},#{item.correctDeadline}) </foreach> </insert>
注意:不需要返回值,主键字段的值 默认会填充到入参对象的引用中去
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。