增删改查 接口·快速开发·参照流程
程序员文章站
2022-03-04 13:13:57
...
增删改查
假定四个接口Controller入参都是
(@RequestBody Student student)
1.增加接口——1个原生方法(须调用查询接口、更新接口方法)
//1.调用查询接口
//查询该记录是否已存在-根据student_name、class_name等增加接口的(无id)入参信息查询
【Student selecting(Student student);】
//不存在则插入
//2.增加接口:
【void inserting(Student student); 】
//已存在则更新 或 提示已存在
//3.调用更新接口 の一个附属方法
//或 提示已存在
//更新-根据student_name、class_name等增加接口的(无id)入参信息更新
【void updateByOther(Student student);】
2.删除接口——1个原生方法
(前端知道该条记录存在 才来请求的删除)
//传id不传student_name、class_name根据id删除;
//传student_name、class_name不传id根据student_name、class_name删除;
//传了id也传了student_name、class_name则根据这三者去删除;
//删除接口:
【void deleting(Student student); 】
//只需要一个sql就搞定了[不用考虑没有匹配到记录时如何提示前端删除失败的问题-
//-因为前端知道该条记录存在才来请求的删除]
【
delete from student
<trim prefix="where " prefixOverrides="" suffix="" suffixOverrides="and ">
<if test="id != null">
id = #{id} and
</if>
<if test="student_name != null">
student_name= #{student_name} and
</if>
<if test="class_name != null">
class_name= #{class_name} and
</if>
<if test="1 == 1">
is_del = 0
</if>
</trim>
】
3.修改接口——1个原生方法(+1个供增加接口调用-但不暴露给前端的方法)
// 删除接口:
//根据id删除
【void updateById(Student student);】
//供增加接口调用-但不暴露给前端的方法//注意:该方法可以不在service,serviceimp中实现
//更新之前最好校验id不为空(如果id为空,where条件失效会更新全部数据!)
【void updateByOther(Student student );】
(分析:为什么不写在一个sql中?如果写在一个sql中那么sql将是这样的:
update student
<set>
<if test="student_name!=null">
student_name= #{student_name},
</if>
<if test="class_name!=null">
class_name= #{class_name},
</if>
<if test="avg_score!=null">
avg_score= #{avg_score},
</if>
</set>
<trim prefix="where " prefixOverrides="" suffix="" suffixOverrides="and ">
<if test="id!=null">
id = #{id} and
</if>
<if test="student_name!=null">
student_name= #{student_name} and
</if>
<if test="class_name!=null">
class_name= #{class_name} and
</if>
<if test="1 == 1">
is_del = 0
</if>
</trim>
此时:
1.根据student_name、class_name去更新avg_score时,倒是不会出错;
———————————————》但是
2.根据id去更新student_name、class_name、avg_score信息时,会因为where条件中的student_name、class_name是待设置的新值而匹 配不到记录导致更新失败。
4.修改接口——1个原生方法
//一个方法就够了,完全可以根据where多条件(单条件、无条件)查询
【List<Student’> selecting(Student student);】
上一篇: 知识图谱DKN源码详解(二)attention.py
下一篇: PHP+txt聊天室
推荐阅读