单表批量新增
各位码农朋友们,虽然这个看起来是简单,但这个可是让我头疼了一天才摸索出来的,尽管百度上有,但都不全面,我就喜欢看那种全面的代码解决思路,多说无用,上代码就好了
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>
浙公网安备 33010602011771号