关于Mybatis处理数据字段:status 时的怪事分析

事件描述:
数据库为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这个作为数据库字段,可能有些道理,但我在实际使用过程中目前是没有遇到什么问题;如果你有好的见解欢迎 留言评论。

猜你喜欢

转载自blog.csdn.net/weixin_44690195/article/details/108723553