//Controller层
/**
* 修改
* @param emp
* @param response
*/
@RequestMapping("edit.do")
public void Edit(Emp emp,HttpServletResponse response) throws IOException {
System.out.println(emp);
response.setContentType("text/html;charset=UTF-8");
int i = empSerivce.updateByPrimaryKeySelective(emp);
System.out.println(i);
PrintWriter Pwriter = response.getWriter();
if(i>0){
Pwriter.write("<script type='text/javascript'>alert('修改成功');location.href='select.do'</script>");
}else {
Pwriter.write("<script type='text/javascript'>alert('修改失败');location.href='editselect.do'</script>");
}
}
在方法中参数emp是从页面接收过来的值,要和po层的属性保持一致,在修改过程中,要注意参数,和SQL语句中的值,不要搞错了,
<update id="updateByPrimaryKeySelective" parameterType="com.test.po.Emp" >
update emp
<set >
<if test="empname != null" >
empname = #{empname,jdbcType=VARCHAR},
</if>
<if test="job != null" >
job = #{job,jdbcType=VARCHAR},
</if>
<if test="mgr != null" >
mgr = #{mgr,jdbcType=INTEGER},
</if>
<if test="hiredate != null" >
hiredate = #{hiredate,jdbcType=TIMESTAMP},
</if>
<if test="sal != null" >
sal = #{sal,jdbcType=INTEGER},
</if>
<if test="comm != null" >
comm = #{comm,jdbcType=INTEGER},
</if>
<if test="deptno != null" >
deptno = #{deptno,jdbcType=INTEGER},
</if>
</set>
where empno = #{empno,jdbcType=INTEGER}
</update>
//SQL的语句,在dao层写好,不要出任何差错,不然代码执行会报错!
总结:用Spring Boot完成数据库的增删该查的时候,主要注意的就是参数!
解决方案最好就是把参数和属性保持一致!