事件描述:
数据库为Mysql
表如下:
Po层
@Data
public class SysUser {
private Integer id;//主键1
private Integer type;//2 0 本公司 1 代理 2 经销
private Integer companyId;//3 公司ID 公司ID 0 代表本公司
private String companyName;//4 公司名称
private Integer role;//5 0管理员 1 财务 3 业务
private String useName;//6 姓名
private String usePWD;//7 密码
private String loginCode;//8 登陆标识
private Integer status;//状态9
private Integer createBy;//创建人10
private Date createTime;//创建时间11
private Date updateTime;//修改时间12
}
controller 层
/**
* 修改功能
* @return
*/
@ResponseBody
@RequestMapping("user/updateUserSubmit")
public R updateUserSubmit(@RequestBody SysUser sysUser){
System.out.println(sysUser.toString());
sysUserService.updateUserSubmit(sysUser);
return R.ok();
}
dao mapper文件
前端代码
异常表现
IDE 报错
heck the manual that corresponds to your MySQL server version for the right syntax to use near 'where id=4' at line 3
可能性分析:
1.缓存(IE缓存 与 IDE缓存,这个为最常见的问题)
2.传参过程有参数没有传过去(通过Consel.log 打印分析,注意与前台接收的参数要一一对应,比如大小写细节)
3.SQL语句拼写有问题(查一下 xml文件通过IDE报错这个原因可能是最大的,但就是查不出来)
4.还有一个可能就是传参前参数本身就是不对的,所以我在Controller层的对应方法上直接做了输出如下:
/**
* 修改功能
* @return
*/
@ResponseBody
@RequestMapping("user/updateUserSubmit")
public R updateUserSubmit(@RequestBody SysUser sysUser){
System.out.println(sysUser.toString());//为了检查在这里做一下输入
sysUserService.updateUserSubmit(sysUser);
return R.ok();
}
后来原因原因还是出在的mapper文件上找到:
去除后正常。
后记:网上也有人说尽量不要用status这个作为数据库字段,可能有些道理,但我在实际使用过程中目前是没有遇到什么问题;如果你有好的见解欢迎 留言评论。