spring boot整合Mybatis批量添加操作
注意问题:
1.dao层别忘了@mapper注解
2.@Param(“entities”)List entities别忘了@Param
作用是让xml,识别你的集合
一、controller 层调用service层的接口
@Slf4j
@RestController
@RequestMapping("接口")
public class TabZmmo3110MaterialDataController {
/**
* 服务对象
*/
@Resource
private TabZmmo3110MaterialDataService tabZmmo3110MaterialDataService;
@PostMapping("地址")
@ResponseBody
public void getHistoryBill(@RequestBody String object) {
System.out.print(object);
log.info("------------call------------");
if (StringUtils.isNotEmpty(object)) {
JSONObject jsonObject = JSONObject.parseObject(object);
JSONObject tb_out = jsonObject.getJSONObject("TB_OUT");
if(tb_out != null&& StringUtils.isNotEmpty(tb_out.getString("ITEMS"))) {
List<TabZmmo3110MaterialData> entitys = JSONObject.parseArray(tb_out.getString("ITEMS"), TabZmmo3110MaterialData.class);
int num=tabZmmo3110MaterialDataService.insertManyZmmo3110MaterialData(entitys);
}
}
}
}
二、service层的接口
/**
* 批量新增数据(MyBatis原生foreach方法)
*
* @param entities List<TabZmmo3110MaterialData> 实例对象列表
* @return 影响行数
*/
int insertManyZmmo3110MaterialData(@Param("entities") List<TabZmmo3110MaterialData> entities);
三、serviceimpl层的实现
/**
* 批量新增数据(MyBatis原生foreach方法)
*
* @param entities List<TabZmmo3110MaterialData> 实例对象列表
* @return 影响行数
*/
@Override
public int insertManyZmmo3110MaterialData(List<TabZmmo3110MaterialData> entities) {
return tabZmmo3110MaterialDataDao.insertManyZmmo3110MaterialData(entities);
}
四、dao层
/**
* 批量新增数据(MyBatis原生foreach方法)
*
* @param entities List<TabZmmo3110MaterialData> 实例对象列表
* @return 影响行数
*/
int insertManyZmmo3110MaterialData(@Param("entities")List<TabZmmo3110MaterialData> entities);
五、dao.xml的sql
<insert id="insertManyZmmo3110MaterialData" keyProperty="id" useGeneratedKeys="true">
insert into tab_zmmo3110_material_data(
matnr, maktx, werks, mvgr1, mvgr2, mvgr3, maktl, wgbez, mvgr4, bezei4, bonus, vtext, bezei1, bezei2, bezei3
)
values
<foreach collection="entities" item="entity" separator=",">
(
#{entity.matnr},
#{entity.maktx},
#{entity.werks},
#{entity.mvgr1},
#{entity.mvgr2},
#{entity.mvgr3},
#{entity.maktl},
#{entity.wgbez},
#{entity.mvgr4},
#{entity.bezei4},
#{entity.bonus},
#{entity.vtext},
#{entity.bezei1},
#{entity.bezei2},
#{entity.bezei3}
)
</foreach>
</insert>