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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值