04.教师信息的更新功能
405表示你的请求方式写错了,GET/PUT/POST/DELETE
put是更新数据的方法,put方法是幂等的,即多次调用put方法,结果都是一样的
post是新增数据的方法,post方法不是幂等的,即多次调用post方法,结果可能不一样
get是查询数据的方法,get方法是幂等的,即多次调用get方法,结果都是一样的
delete是删除数据的方法,delete方法是幂等的,即多次调用delete方法,结果都是一样的
逻辑
前端操作:
管理员在表格里点击”编辑”按钮,前端会获取该行数据的完整信息,特别是id字段
弹出编辑表单,自动填好当前教师信息(姓名、性别、职称等),可以修改
修改后点击”保存”按钮
后端处理:
前端把修改后的数据打包发送到/teacher/update接口
前端将包含id的教师数据发送到后端
后端通过id精确锁定要修改的记录
注意
前端必须传递完整的教师对象,且必须包含id
后端updateById方法会自动用对象的id属性作为更新条件
如果前端传的教师对象没有id,会被视为新增而非编辑
前端
之前在查询里面已经写过更新编辑的样式,直接写逻辑
1 | // 编辑教师按钮点击事件 |
编辑保存时,弹窗未取消,并且需要刷新才能更新,因为一开始教师信息错误,后面很多都是复制粘贴所以也是存在这个错误,这个是新增保存和编辑保存的逻辑,以后的注意!!!
1 | if (res.code === '200') { |
后端
TeacherController
1 | /** |
TeacherService
1 | //根据id查询教师信息,返回一个teacher对象 |
TeacherMapper
1 | void updateById(Teacher teacher);//更新教师信息 |
同时在TeacherMapper.xml修改更新逻辑
1 | <update id="updateById" parameterType="com.example.entity.Teacher"> |
这里的teacher是数据库表名
注意:逗号是必须的, 否则会报错, 因为没有逗号, mybatis会认为这是一个字符串, 而不是一个数组
这里的id是实体类中的属性名,不是数据库中的字段名
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 学海拾茜!

