BUG记录 | 注册功能报错:Data too long for column ‘sex‘ at row 1

发布时间:2023年12月24日

项目场景

SpringBoot+Vue 前后端分离的项目,在实现前后端交互(注册功能)时出现报错

问题描述

点击注册按钮后显示服务异常
在这里插入图片描述

报错提示

org.springframework.dao.DataIntegrityViolationException: 
### Error updating database.  Cause: com.mysql.cj.jdbc.exceptions.MysqlDataTruncation: Data truncation: Data too long for column 'sex' at row 1
### The error may exist in cn/itcast/user/mapper/UserMapper.java (best guess)
### The error may involve cn.itcast.user.mapper.UserMapper.add-Inline
### The error occurred while setting parameters
### SQL: insert into user(username,sex,password) values(?,?,?)
### Cause: com.mysql.cj.jdbc.exceptions.MysqlDataTruncation: Data truncation: Data too long for column 'sex' at row 1

在第一次测试注册功能时,选择了"男",也报错,因此已经重新修改了sex字段的长度,在选择"女"时又出现了报错

但是在postman中点击注册并不会报错

原因分析

这里错误提示数据过长,无法存储到sex字段中,数据库的设计如下(修改过一次)
在这里插入图片描述
在设计时,自己插入的数据是中文字符,而在点击注册后,自动以英语的malefemale存储在数据库中,因此原本的 varchar(2)varchar(4) 就不适合了

在这里插入图片描述

解决方案

这里我选择直接修改字段类型,设计为varchar(8)

测试

成功注册,并将用户信息添加到数据中
在这里插入图片描述

文章来源:https://blog.csdn.net/Alita233_/article/details/135182400
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。