java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > mybatis批量添加

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>

注意:不需要返回值,主键字段的值 默认会填充到入参对象的引用中去

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文