各位码农朋友们,虽然这个看起来是简单,但这个可是让我头疼了一天才摸索出来的,尽管百度上有,但都不全面,我就喜欢看那种全面的代码解决思路,多说无用,上代码就好了
1.Controller类
@PostMapping("/senvKpiTree/insertkpi") @AutoLog(description = "新增指标接口") @ApiOperation(value = "新增指标接口", notes = "序号不能重复") public BaseResponse insertKpi(@RequestBody List<SenvKpiTreeVO> senvKpiTreeVO) { BaseResponse baseResponse = senvKpiTreeValidator.verifyInsertKpi(senvKpiTreeVO); if (!baseResponse.getResult()) { return baseResponse; } if (senvKpiTreeService.insertBatch(senvKpiTreeVO)) { return new BaseResponse(true, "新增成功", 0); } else { return new BaseResponse(true, "新增失败", -1); } }
2.参数校验类
@Service public class SenvKpiTreeValidator extends BaseValidator { public BaseResponse verifyInsertKpi(List<SenvKpiTreeVO> request) { for (SenvKpiTreeVO param : request) { if (param == null) { return setErrorResponse(24040201, "请求报文为空"); } if (StringUtils.isBlank(param.getSerialNumber())) { return setErrorResponse(24040202, "SerialNumber不能为空"); } if (param.getWeight() > 1 || param.getWeight() < 0) { return setErrorResponse(24040203, "Weight在0和1之间"); } if (StringUtils.isBlank(param.getCategory())) { return setErrorResponse(24040204, "Category不能为空"); } } return setSuccessResponse(); } }
3.Service接口方法
Boolean insertBatch(List<SenvKpiTreeVO> senvKpiTree);
4.Service服务实现层
@Override public Boolean insertBatch(List<SenvKpiTreeVO> kpiList) { if (CollectionUtils.isEmpty(kpiList)) { return false; } senvKpiTreeMapper.insertBatch(copyList(kpiList, SenvKpiTree.class)); return true; }
5.mapper层
void insertBatch(List<SenvKpiTree> model);
6.mapping映射
<!--新增:批量新增--> <insert id="insertBatch" parameterType="java.util.List"> INSERT INTO senv_kpi_tree (serial_number,weight,category,kpi_name,target_value,standard) VALUES <foreach collection="list" item="item" index="index" separator=","> (#{item.serialNumber},#{item.weight},#{item.category},#{item.kpiName},#{item.targetValue},#{item.standard}) </foreach> </insert>