问题复现
获取用户信息接口
详细的获取步骤,但是卡在了第一步获取信息上。
查看控制台,发现sql查询正确并成功返回。但是出现了outside of valid range for type
解决方法
解决方法一
实体类和数据库的列数据类型不一致(包括使用resultMap时候,自己定义resultMap中的变量和类的数据类型不对应)
只要将对于的数据类型一一对应上就行了。
解决方法二
如果还是显示数据类型不一致。你需要去查看实体类
@TableName("user_info")
@Data
public class UserInfo implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
/**
* 学生或者教师编号
*/
private String userNumber;
/**
* 用户密码
*/
private String userPassword;
/**
* 用户姓名
*/
private String userName;
/**
* 用户校区外键
*/
private Integer userCampus;
/**
* 用户地址
*/
private String userAddress;
/**
* 用户手机号码
*/
private String userPhone;
/**
* 用户头像
*/
private Integer userImgId;
/**
* 账号表的外键
*/
private Integer accountId;
public UserInfo(Integer imageId, Integer userId) {
this.userImgId=imageId;
this.id=userId;
}
}
发现缺少全参数构造函数或空参构造函数,因为数据库的返回需要调用这些函数,而实体类只有一个两个参数的构造函数,导致将String类型的赋给了Integer类型。加上@AllArgsConstructor即可