<insert id="batchInsert" parameterType="java.util.List" useGeneratedKeys="true" keyColumn="subform_id"
keyProperty="subformId">
insert into t_form_subf
(
form_id,
subform_no,
subform_name,
subform_describe,
subform_input_type,
subform_content,
subform_length,
subform_width,
required_yn,
dict_code,
table_code,
field_code,
regi_state,
create_by,
create_time,
update_by,
update_time
)
values
<foreach collection="list" item="item" separator=",">
(
#{item.formId,jdbcType=BIGINT},
#{item.subformNo,jdbcType=VARCHAR},
#{item.subformName,jdbcType=VARCHAR},
#{item.subformDescribe,jdbcType=VARCHAR},
#{item.subformInputType,jdbcType=VARCHAR},
#{item.subformContent,jdbcType=VARCHAR},
#{item.subformLength,jdbcType=FLOAT},
#{item.subformWidth,jdbcType=FLOAT},
#{item.requiredYn,jdbcType=VARCHAR},
#{item.dictCode,jdbcType=VARCHAR},
#{item.tableCode,jdbcType=VARCHAR},
#{item.fieldCode,jdbcType=VARCHAR},
#{item.regiState,jdbcType=VARCHAR},
#{item.createBy,jdbcType=VARCHAR},
#{item.createTime,jdbcType=TIMESTAMP},
#{item.updateBy,jdbcType=VARCHAR},
#{item.updateTime,jdbcType=TIMESTAMP}
)
</foreach>
on duplicate key update form_id = values(form_id), subform_no =
values(subform_no), subform_name =values(subform_name),
subform_describe =values(subform_describe),
subform_input_type =values(subform_input_type),
required_yn =values(required_yn),
dict_code =values(dict_code),
table_code =values(table_code),
field_code =values(field_code),
regi_state =values(regi_state),
create_by =values(create_by),
create_time =values(create_time),
update_by = values(update_by),
update_time =values(update_time)
分析
出现 问题 是加 on duplicate key update 受了影响,
解决
去掉 on duplicate key update代码
ON DUPLICATE key update是根据索引字段是否重复来判断是否执行,如果重复则执行update,否则则执行insert。
优先级主键>唯一索引文章来源:https://www.toymoban.com/news/detail-564040.html
当主键重复时则执行update
当主键不重复,唯一索引重复时也执行update
当主键和唯一索引值都不重复才执行insert文章来源地址https://www.toymoban.com/news/detail-564040.html
到了这里,关于Mybatis 批量新增 只返回第一主键ID 其他返回null的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!