Java在MySQL数据报错Data truncation: Data too long for column ‘**‘ at row 1 处理

问题

在Java SpringBoot MyBatis 框架的项目中,一切正常,不过在一个接口的参数字段传入过大的数据就会报此错误:

在这里插入图片描述

请求常:org.springframework.dao.DataIntegrityViolationException:
Error updating database.Cause:com.mysql.cj.jdbc.exceptions.MysqlDataTruncation: Data truncation:Data too long for column '’ at row 1
The error may exist in com/
/server/mapper/.java (best guess)
The error may involve com.
.server.mapper.****.Inline
The error occurred while setting parameters

此错误的直白翻译就是数据对于数据库的字段来说过长。

解决方式

因为这里使用的MyBatis框架,直接的方式就是修改实体类中属性与数据表中字段的对应关系的注解 @Column。

这里原本代码如下:

@Column(type = MySqlTypeConstant.VARCHAR, length = 100)

可以尝试修改或者去除长度限制“ length = 100”。

但是尝试后其实并没有什么作用。

那么就需要修改这里的类型了。我这里使用的是MYSQL 8.0,我尝试了修改为TEXT类型:

@Column(type = MySqlTypeConstant.TEXT)

TEXT具有长度最大值65,535(即2^16 − 1)个字符。如果有更大的长度需求的话,可以尝试LONGTEXT的类型,最大长度为4,294,967,295 或 4GB (2^32 − 1)个字符。

常用字符串

常用的字符串类型已经整理如下:

[NATIONAL] VARCHAR(M) [CHARACTER SET charset_name] [COLLATE collation_name]

可变长度字符串。M 表示以字符为单位的最大列长度。这 M 的范围是 0 到 65,535。这 VARCHAR 的有效最大长度受最大行大小(65,535 字节,由所有 columns)和使用的字符集。例如,字符最多可以要求 每个字符三个字节,因此可以使用字符集的 VARCHAR 列声明为 最多 21,844 个字符。
VARCHAR 是CHARACTER VARYING 的简写。NATIONAL VARCHAR 是定义 VARCHAR 列应使用的标准 SQL 方法一些预定义的字符集。MySQL使用这个预定义的字符集。NVARCHAR 是NATIONAL VARCHAR 的简写。

BINARY[(M)]

BINARY 类型类似于 CHAR 类型,但存储 二进制字节字符串,而不是非二进制字符串。 可选长度 M 表示列长度(以字节为单位)。如果省略,则 M 默认为 1。

VARBINARY(M)

VARBINARY 类型类似 到 VARCHAR 类型,但 存储二进制字节字符串而不是非二进制字符 字符串。M 代表最大值列长度(以字节为单位)。

TINYBLOB

具有最大值的 BLOB 列 长度 255 (2,8 − 1) 字节。每个 TINYBLOB 值为 使用 1 字节长度前缀存储,该前缀指示 值中的字节数。

TINYTEXT [CHARACTER SET charset_name] [COLLATE collation_name]

具有最大值的 TEXT 列 长度 255 (2,8 − 1) 字符。有效最大长度较小,如果 value 包含多字节字符。存储每个TINYTEXT 值 使用 1 字节长度前缀来指示 值中的字节。

BLOB[(M)]

具有最大值的 BLOB 列 长度 65,535 (216 − 1) 字节。每个 BLOB 值是 使用 2 字节长度前缀存储,该前缀指示值中的字节数。
可以给出可选的长度 M 对于这种类型。如果完成此操作,MySQL将创建列 最小的 BLOB 类型:大 足以容纳值 M 字节 长。

TEXT[(M)] [CHARACTER SET charset_name] [COLLATE collation_name]

具有最大值的 TEXT 列 长度 65,535 (216 − 1) 字符。有效最大长度较小,如果 value 包含多字节字符。每个 TEXT值都使用 2 字节长度前缀,表示 值。
可以给出可选的长度 M 对于这种类型。如果完成此操作,MySQL将创建列 最小的 TEXT 类型为 large 足以容纳值 M 个字符。

MEDIUMBLOB

具有最大值的 BLOB 列 长度 16,777,215 (224 − 1) 字节。每个 MEDIUMBLOB 值都使用一个 3字节长度的前缀进行存储,该前缀指示 值中的字节数。

MEDIUMTEXT [CHARACTER SET charset_name] [COLLATE collation_name]

具有最大值的 TEXT 列 长度 16,777,215 (224 − 1)字符。有效最大长度较小,如果 value 包含多字节字符。存储每个 MEDIUMTEXT 值 使用 3 字节长度前缀来指示 值中的字节。

LONGBLOB

具有最大值的 BLOB 列 长度为 4,294,967,295 或 4GB (232 − 1) 字节。这 LONGBLOB列的有效最大长度取决于 客户端/服务器中配置的最大数据包大小 协议和可用内存。存储每个 LONGBLOB 值 使用 4 字节长度前缀来指示值中的字节。

LONGTEXT [CHARACTER SET charset_name] [COLLATE collation_name]

具有最大值的 TEXT 列 长度为 4,294,967,295 或 4GB (232 − 1) 个字符。这 如果值包含多字节字符。LONGTEXT 列的有效最大长度还取决于配置的最大数据包大小 在客户端/服务器协议和可用内存中。每个 LONGTEXT值都使用一个 4 字节长度的前缀进行存储,该前缀表示 值中的字节数。

更多的类型说明可以参照官方的说明文档:https://dev.mysql.com/doc/refman/8.0/en/string-type-syntax.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/556786.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

漫画项目管理 | 遇到强势甲方的不合理项目需求,我该怎么办?

🤷‍♂️ 遇到甲方强烈要求不合理需求怎么办? 🤸‍♂️看似离谱的功能客户却一定要加? 🤹‍♂️时间紧任务重,甲方却“什么都想要“? 🤾‍♂️明明初稿很完美,却被要求改来改去?** 👨‍…

学习STM32第十六天

RTC实时时钟 一、简介 RTC是一个独立的BCD格式定时器,提供一个时钟日历,两个可编程报警中断,一个具有中断功能周期性可编程唤醒标志,RTC和时钟配置系统处于后备区域。 通过两个32位寄存器以BCD格式实现秒、分钟、小时&#xff08…

Qt日志使用

QsLog使用 这篇讲qt的日志还是比较好的,可以在自己的函数里面配置这个日志框架实现自己所需的功能。 我接触的项目里面,假如有个函数功能执行错误了,我希望可以快速定位到这个错误,这个时候就需要到了日志,我咨询了有经…

使用Python脚本检测服务器信息并定时发送至管理员邮箱

在日常的系统管理工作中,监测服务器的资源占用情况至关重要,我们需要及时获得通知以便采取相应措施。我新装了一台UbuntuServer服务器,写了一个可以定期收集服务器的CPU、内存、网络和磁盘信息,并通过邮件将这些信息发送给管理员的…

Seal^_^【送书活动第一期】——《Vue.js+Node.js全栈开发实战(第2版)》

Seal^_^【送书活动第一期】——《Vue.jsNode.js全栈开发实战(第2版)》 一、参与方式二、本期推荐图书2.1 前 言2.2 作者简介2.3 图书简介2.4 本书特色2.5 编辑推荐2.6 书籍目录 三、正版购买 一、参与方式 1、关注博主的账号。 2、点赞、收藏、评论博主的…

C++练级之路——类和对象(下)

目录 1、构造函数初始化列表 2、类型转换 3、explicit关键字 4、static成员 5、友元 友元函数 友元类 6、内部类 7、匿名对象 8、拷贝构造时的一些编译器优化 差不多结束了,类和对象! 1、构造函数初始化列表 初始化列表:以一个冒号…

了解MySQL的复制

了解MySQL的复制 MySQL的复制允许数据从一个MySQL数据库服务器(主服务器)复制到一个或多个MySQL数据库服务器(从服务器)。复制在数据库的扩展性和数据备份方面扮演着重要角色,特别是在大型企业和高可用性的应用场景中…

时序预测 | Transformer时间序列预测 Matlab代码

文章目录 效果一览文章概述源码设计参考资料 效果一览 文章概述 1.时序预测 | Transformer时间序列预测 Matlab代码 2.单变量时间序列预测; 3.多指标评价,评价指标包括:R2、MAE、MBE等,代码质量极高; 4.excel数据&…

Git使用总结(不断更新中)

branch 本地分支操作 删除本地分支 git branch -d <local-branch-name>远端分支操作 从远端分支创建本地分支 git checkout -b <local-branch-name> origin/<remote-branch-name>git ignore 如果工程的代码文件中有不希望上传到远端的文件&#xff0c;…

Java数据类型以及范围

数据类型&#xff1a; 取值范围&#xff1a; 取值&#xff1a;

将 Notepad++ 添加到右键菜单

目录 方式一&#xff1a;添加注册表&#xff08;手动&#xff09; 方式二&#xff1a;添加注册表&#xff08;一键添加&#xff09; 有时安装了notepad后&#xff0c;在txt文件上右键&#xff0c;在弹出的菜单栏中没有【通过 Notepad 打开】&#xff0c;如下&#xff1a; 这…

c语言基础总结

1. c语言概述 c语言是计算机编程语言的一种&#xff0c;编程语言用于人和机器交流。 1.1 c语言特点 简洁 ​ c语言的语法简单&#xff0c;语句清晰明了&#xff0c;使得程序易于阅读和理解 高效 ​ c语言的执行效率高&#xff0c;可以用于开发需要高性能的应用程序 可移…

[C++][算法基础]求约数(试除法)

给定 n 个正整数 &#xff0c;对于每个整数 &#xff0c;请你按照从小到大的顺序输出它的所有约数。 输入格式 第一行包含整数 n。 接下来 n 行&#xff0c;每行包含一个整数 。 输出格式 输出共 n 行&#xff0c;其中第 i 行输出第 i 个整数 的所有约数。 数据范围 1≤…

Django模型的字段类型

Django模型中最重要并且也是唯一必须执行的就是字段定义。字段在类中进行定义&#xff0c;对应于实体数据库的字段。另外&#xff0c;定义模型字段名时为了避免冲突&#xff0c;不建议使用模型API中已经定义的关键字。 字段类型用以指定数据库的数据类型&#xff0c;例如Integ…

瑞芯微RK3328(ROC-RK3328-PC)buildroot 开发QT的hello world

第一部分&#xff1a;编译rk3328 sdk 0. 环境 - EC-R3328PC&#xff08;ROC-RK3328-PC&#xff09; - ubuntu18&#xff08;100GB&#xff09; 1. 安装依赖 sudo apt-get updatesudo apt-get install repo git-core gitk git-gui gcc-arm-linux-gnueabihf u-boot-tools devi…

C++ //练习 12.26 用allocator重写第427中的程序。

C Primer&#xff08;第5版&#xff09; 练习 12.26 练习 12.26 用allocator重写第427中的程序。 环境&#xff1a;Linux Ubuntu&#xff08;云服务器&#xff09; 工具&#xff1a;vim 代码块 /************************************************************************…

Linux入门攻坚——19、sed入门、bash脚本编程续

sed&#xff1a;Stream EDitor&#xff0c;流编辑器&#xff0c;行编辑器&#xff1a;实现文本编辑时是逐行进行的。 用法&#xff1a; sed [option]... script inputfile... script&#xff1a;‘地址命令’&#xff0c;如1,4d sed是将文件内容读取后放入自己的编辑…

Junit 历史-ApiHug准备-测试篇-008

&#x1f917; ApiHug {Postman|Swagger|Api...} 快↑ 准√ 省↓ GitHub - apihug/apihug.com: All abou the Apihug apihug.com: 有爱&#xff0c;有温度&#xff0c;有质量&#xff0c;有信任ApiHug - API design Copilot - IntelliJ IDEs Plugin | Marketplace 背景 J…

【人工智能书籍】一本书读懂AIGC:ChatGPT、AI绘画、智能文明与生产力变革(PDF分享)

今天又来给大家推荐一本人工智能方面的书籍<一本书读懂AIGC&#xff1a;ChatGPT、AI绘画、智能文明与生产力变革>。本书以通俗易懂的方式从各个层面介绍了AIGC的基础知识&#xff0c;并辅以大量案例引领读者了解AIGC的应用实践&#xff0c;让读者可以更快速地利用AIGC改善…

02节-51单片机-LED模块

文章目录 1.点亮一个LED灯2.LED闪烁3.LED流水灯 1.点亮一个LED灯 #include <REGX52.H> void main() {P20xFE; //1111 1110while(1){} }2.LED闪烁 增加延时&#xff0c;控制LED的亮灭间隙 延时函数的添加依靠STC-ISP软件的延时函数功能代码自动生成&#xff0c;如图 #i…