课程名称:Spring Cloud+ Vue前后端分离开发企业级在线视频系统
课程章节:第5章 单表管理功能前后端开发
讲师姓名:甲蛙老师
课程内容:
修改、删除大章:增加修改和删除大章功能,新增和修改用同一个保存功能,通过传入的参数id有没有值来判断
课程收获:
由于id是生成的UUID,所以在新增数据的时候chapter.id是空的,可以根据id是否有值来判断是新增还是修改
前端方法区别如下:
add() {
let _this = this;
_this.chapter = {};
$("#form-modal").modal("show");
},
edit(chapter) {
let _this = this;
_this.chapter = $.extend({}, chapter);
$("#form-modal").modal("show");
},
区别在于$.extend({}, chapter);由于本质上是一个方法,而chapter表单里的数据是双向绑定的,所以导致如果先修改再点新增时会有不应该存在的数据,所以使用这个方法,用一个空的对象隔离开,完成新增和修改的独立。
if(StringUtils.isEmpty(chapterDto.getId())){
insert(chapter);
}
else {
update(chapter);
}
/**
* 新增
*/
private void insert(Chapter chapter) {
chapter.setId(UuidUtil.getShortUuid());
chapterMapper.insert(chapter);
}
/**
* 更新
*/
private void update(Chapter chapter) {
chapterMapper.updateByPrimaryKey(chapter);
}
而新增和修改的方法只是在save这个方法中使用,将其设置为私有的,不对外暴露。