【问题标题】:how to get each entity's id when batch insert using mybatis使用mybatis批量插入时如何获取每个实体的id
【发布时间】:2023-03-16 04:34:01
【问题描述】:

众所周知,当我们使用mybatis保存实体时,我们可以使用keyPropertyuseGeneratedKeys属性来获取实体的id。但是当我批量插入实体时如何获取每个实体的id如下:

<insert id="inserts" keyProperty="id" useGeneratedKeys="true">
        insert into t_ext_wk_agent (agent_code,agent_name,agent_type,icon,agent_url_state,description,target,
        state,create_time,modify_time)
        values
        <foreach collection="list" separator="," item="item">
            (#{item.agentCode},#{item.agentName},#{item.agentType},#{item.icon},#{item.agentUrlState},#{item.description},
            #{item.target},#{item.state},#{item.createTime},#{item.modifyTime})
        </foreach> 
    </insert>

【问题讨论】:

    标签: java insert entity mybatis


    【解决方案1】:

    我刚刚发布了一个相关的answer here

    只需在 Java Foreach 循环中执行一个简单的 Insert 语句,而不是在 Mybatis XML 中遍历集合。最重要的是会话执行器类型(REUSE 或 BATCH)。然后你回到简单的 insert / get generated key 案例

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-22
      相关资源
      最近更新 更多