Mybatis 插入记录时,传入的参数类型是List (可以对比下一篇文章 传入的参数类型是hashmap, 而且hashmap里面包含List)
1. DAO
int insertListContacts(List<OrgContact> record);
2. Mapper.xml
注意:<foreach collection="list" item="item" separator=","> 里面不能有open="(" close=")"
<insert id="insertListContacts" parameterType="java.util.List">
insert into t_org_contact ( Forg_id, Fcontact_type, Fcontact_name,Fcontact_mobile,Fcontact_email,
Fproduct, Fcontract_num )
values
<foreach collection="list" item="item" separator=",">
(#{item.orgId,jdbcType=BIGINT},
#{item.contactType,jdbcType=BIGINT},
#{item.contactName,jdbcType=VARCHAR},
#{item.contactMobile,jdbcType=VARCHAR},
#{item.contactEmail,jdbcType=VARCHAR},
#{item.product,jdbcType=VARCHAR},
#{item.contractNum,jdbcType=VARCHAR} )
</foreach>
</insert>
3. ServiceImpl
private void insertOrgContact(Long orgId, AbstractOrganizationInfoParam param) {
List<OrgContact> listBuz = new ArrayList<>();
List<OrgContact> listOpe = new ArrayList<>();
//业务联系人
for (OrganizationContactInfoParam organizationContactInfoParam : param.getBuzContactInfo()) {
OrgContact orgContact = new OrgContact(organizationContactInfoParam);
orgContact.setOrgId(orgId);
orgContact.setContactType(ContactTypeEnum.businiss.getCode());
listBuz.add(orgContact);
}
if (CollectionUtils.isNotEmpty(listBuz)) {
orgContactMapper.insertListContacts(listBuz);
}
//运营联系人
for (OrganizationContactInfoParam organizationContactInfoParam : param.getOpeContactInfo()) {
OrgContact orgContact = new OrgContact(organizationContactInfoParam);
orgContact.setOrgId(orgId);
orgContact.setContactType(ContactTypeEnum.operation.getCode());
listOpe.add(orgContact);
}
if (CollectionUtils.isNotEmpty(listOpe)) {
orgContactMapper.insertListContacts(listOpe);
}
}