前端要求一次性添加多条数据,并且返回的不是list集合而是对象。这样我们就要借助数据传输来进行循环反复添加。
像以下这种需要添加多条!
首先实体类DemoPojo,省略封装方法(快速封装Alt+Insert)
public class DemoPojo {
private int id;
private String name;
private double price;
/**
*便于循环遍历时来存储想得到的数据
*/
private List<DemolDTO> demoDTOS = new ArrayList<>();
}
Mapper层,数据接口
public interface DemoMapper{
/**
* 添加方法
* @param DemoPojo参数
* @return 返回int
*/
int add(DemoPojo demoPojo);
}
Mapper.xml,映射文件,SQL语句
<mapper namespace="com.ssm.demo.Mapper.DemoMapper">
<resultMap type="com.ssm.demo.pojo.DemoPojo" id="DemoMap">
<result property="id" column="id"/>
<result property="name" column="name"/>
<result property="price" column="price"/>
</resultMap>
<insert id="add" parameterType="com.ssm.demo.pojo.DemoPojo">
insert into demo
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="name!= null">
name,
</if>
<if test="price!= null">
price,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="usrId != null">
#{name},
</if>
<if test="usrName != null">
#{price},
</if>
</trim>
</insert>
</mapper>
Service层
public interface DemoService{
/**
* 添加
* @param demoPojo参数
* @return 返回int
*/
int add(DemoPojo demoPojo);
}
ServiceImpl层,实现接口
@Service
public class DemoServiceImpl implements DemoService{
@Autowired
private DemoMapper demoMapper;
/**
* 添加
* @param demoPojo参数
* @return 返回int
*/
@Override
public int add(DemoPojo demoPojo) {
return demoMapper.add(demoPojo);
}
}
Controller层,控制层
@RestController
public class DemoController {
@Autowired
private DemoService demoService;
@ApiOperation("添加")
@PostMapping("add")
public R add(@RequestBody DemoPojo demoPojo) {
for (DemoDTO demoDTO : demoPojo.getDemoDTO()) {
demoPojo = new DemoPojo();
BeanUtils.copyProperties(demoDTO , demoPojo);
demoService.add(demoPojo);
}
return R.ok();
}
}
DemoDTO 类,用来数据之间传输的类
public class GoodsSecondaryLabelDTO {
private String name;
private double price;
}