mybatis中foreach标签进行嵌套插入

2022-07-08 09:09:54

场景说明

现有一插入操作,要求按照指定格式进行插入操作.具体格式如下:
在这里插入图片描述
上面各对象中对应的表字段:
在这里插入图片描述

处理过程

第一层实体类:

publicclassStudioCourseAddUpdateDtoimplementsSerializable{privatestaticfinallong serialVersionUID=4862281856286977081L;privateint studioId;privateList<CourseInfoDto> courseInfoDtoList;// 省略get/set}

第二层实体类:

publicclassCourseInfoDtoimplementsSerializable{privatestaticfinallong serialVersionUID=-2975706030949793781L;privateint courseType;privateList<CourseDetailInfoDto> courseDetailInfoDtoList;// 省略get/set}

第三层实体类:

publicclassCourseDetailInfoDtoimplementsSerializable{privatestaticfinallong serialVersionUID=-1423166674509217993L;privateint courseId;privateString feeCount;// 省略get/set}

mapper接口:

intbathAddStudioCourseInfo(@Param("studioCourseAddUpdateDtoList")List<courseAddUpdateDto> courseAddUpdateDtoList);

配置文件:

<insertid="bathAddStudioCourseInfo"parameterType="com.it.tao.CourseAddUpdateDto"><foreachcollection="courseAddUpdateDtoList"item="courseAddUpdateDto"><foreachcollection="courseAddUpdateDto.courseInfoDtoList"item="courseInfoDto"><foreachcollection="courseInfoDto.courseDetailInfoDtoList"item="courseDetailInfoDto">
                INSERT INTO card_course (course_id,studio_id,course_type,fee_count) VALUES
                (#{courseDetailInfoDto.courseId},#{courseAddUpdateDto.studioId},#{courseInfoDto.courseType},#{courseDetailInfoDto.feeCount});</foreach></foreach></foreach></insert>

    以上是亲测可行的处理方案,如果有更好的实现方案欢迎评论区留言交流!

  • 作者:卖柴火的小伙子
  • 原文链接:https://blog.csdn.net/weixin_43401380/article/details/121720034
    更新时间:2022-07-08 09:09:54