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>注意:不需要返回值,主键字段的值 默认会填充到入参对象的引用中去
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
