问答详情
源自:5-1 更新方法

老师,为啥在更新操作的时候sql语句都会自带manager_id=?呢?

@Test

void updateById() {

User user = new User();

user.setId(1289401733907771394L);

user.setAge(28);

user.setEmail("wtf4@baomidou.com");

int rows = userMapper.updateById(user);

System.out.println("影响记录数:"+rows);

}

控制台输出:

DEBUG==>  Preparing: UPDATE user SET age=?, email=?, manager_id=? WHERE id=? 

DEBUG==> Parameters: 28(Integer), wtf4@baomidou.com(String), 0(Long), 1289401733907771394(Long)

DEBUG<==    Updates: 1

影响记录数:1




提问者:慕田峪4082786 2020-08-02 21:20

个回答

  • 老猿
    2020-08-09 16:21:10

    是的,要用基本数据类型的包装类,不能用基本数据类型,基本数据类型作为实例变量,默认值是0、

  • 慕田峪4082786
    2020-08-03 16:24:22

    要用Long类型,private Long managerId;

    写成private long managerId;就默认为0了