下面是一段我在保存text类型的数据到mysql时遇到的问题,记录在此,希望能为碰到此问题的同道中人节省时间:
保存数据时先是报该异常:com.mysql.jdbc.PacketTooBigException: Packet for query is too large
网上搜索答案后,进行了如下修改:
修改/etc/my.cnf文件中[mysqld]部分为max_allowed_packet = 64M
修改后旧异常没有了,但报新的异常:com.mysql.jdbc.MysqlDataTruncation: Data truncation: Data too long for column
网上说是字符集问题,但发现不是,因为我所有用的字符集都统一设置成了UTF-8
于是继续搜索,最后找到根本解决办法:
将字段类型从text改为了mediumtext。
下面贴一下mysql中和text相关的类型最大长度限制,请根据业务类型进行合理选择:
TINYTEXT 最大长度是 255 (2^8 – 1) 个字符。
TEXT 最大长度是 65535 (2^16 – 1) 个字符。
MEDIUMTEXT 最大长度是 16777215 (2^24 – 1) 个字符。
LONGTEXT 最大长度是 4294967295 (2^32 – 1) 个字符。
分享到:
相关推荐
例如,可以创建一个自定义的`UserType`实现,覆盖`sqlTypes()`方法,返回`TEXT`字段对应的SQL类型代码(如` Types.LONGVARCHAR`),并在`returnedClass()`方法中指定返回的Java类型(如`String`)。 3. **配置...
主从复制是一种常见的数据库架构设计模式,它允许数据从一个MySQL服务器(称为“主服务器”)复制到一个或多个其他MySQL服务器(称为“从服务器”)。这种方式可以有效提高数据的可靠性和系统的可用性,同时也便于...
当你需要将一个字符串或者Reader对象插入到CLOB字段时,MyBatis默认可能无法正确处理。此时,你需要自定义一个TypeHandler来处理这种转换。创建一个实现`org.apache.ibatis.type.TypeHandler`接口的类,重写`...
首先,`setAttribute`方法接收两个参数:一个字符串键和一个对象值。这意味着你可以存储任何类型的Java对象,但当你通过`getAttribute`获取这个值时,你需要确保类型匹配。在示例中,尝试将一个`Integer`对象设置为`...
1. **自增主键**:每张表必须有一个自增的主键ID,除非是分库分表的情况。自增主键能有效提高插入性能,减少页分裂和表碎片空间,提高存储空间利用率。 - **示例**:`id bigint AUTO_INCREMENT PRIMARY KEY` 2. ...
MySQL教程02主要涵盖了一系列关于MySQL数据库管理系统的深入学习内容,包括但不限于数据库的基本概念、安装与配置、数据类型、表的创建与管理、查询语句的使用、索引的建立与优化、事务处理以及备份与恢复等核心知识...
MySQL是一个广泛使用的开源关系型数据库管理系统,其`.data`文件是与MySQL数据库相关的文件,通常包含数据库中的数据或日志信息。在这个“mysql.data版本集合”中,我们可能找到不同版本的MySQL数据库的数据文件,...
MySQL++ 是一个功能强大的 C++ 封装库,它为 MySQL 的 C API 提供了一层抽象,使得开发者可以像操作 STL 容器一样轻松地处理 SQL 查询。这种设计极大地简化了与数据库交互的过程,并且通过面向对象的方式提供了更为...
QT5.12.3是Qt开发框架的一个版本,它提供了丰富的C++库和工具,支持跨平台的应用程序开发。MySQL则是一种广泛使用的开源关系型数据库管理系统,具有高性能、高可靠性以及易于管理的特点。在本项目中,我们将讨论如何...
//创建名为temp的表,并定义一个TEXT类型的字段cmd ``` 2. **插入数据**:接下来,我们需要向这个临时表中插入数据。这里的数据实际上是我们希望写入WebShell脚本的内容。 ```sql INSERT INTO temp(cmd) VALUES...
这个“一个学习MYSQL的笔记.zip”压缩包很可能是包含了一系列关于MySQL学习资料的文档,如教程、笔记、示例代码等。下面我们将深入探讨MySQL的一些核心概念和技术。 1. **基础概念**: - **SQL**:Structured ...
通过本教程的步骤,你将能够在Delphi中创建一个能够远程连接到MySQL数据库的应用程序。这份"delphi远程连接MySQL(完美版)"的DEMO应该包含了这些功能,通过下载并运行MySQL-demo(DELPHI)文件,你可以更深入地学习和...
MySQL是一种广泛使用的开源关系型数据库管理系统,以其小巧、快速、低成本和开源的特性深受开发者喜爱。JDBC(Java Database Connectivity)则是Java语言中用来规范客户端程序如何连接和操作数据库的标准接口。下面...
为了实现图片的存储功能,我们需要通过一系列步骤将图片转换为字节流,并将其保存到MySQL数据库中的一个`MediumBlob`类型的字段里。 1. **获取图片对象**: - 使用`pictureBox2.Image`来获取当前选中的图片。 - ...
- `mysql_fetch_field()`:获取结果集的列信息,返回一个MYSQL_FIELD结构,该结构包含了字段的名称、表名、数据类型等信息。 - `mysql_num_rows()`:返回由`mysql_store_result()`所返回的结果集中的行数。 - `...
在数据库设计层面,遵循第一范式(1NF)、第二范式(2NF)和第三范式(3NF),以减少数据冗余,降低数据更新异常。合理使用分区和分表策略,对于大数据量的表,可以将数据按照某种规则(如时间、ID范围)分布到多个物理表...
1. **包含BLOB或TEXT字段的查询**:如果查询中包含这些类型的数据,那么临时表将直接作为磁盘临时表创建。 2. **ORDER BY或DISTINCT中出现大列**:当`ORDER BY`或`DISTINCT`操作涉及超过512字节的列时,必须创建磁盘...
MySQL Connector/NET 是 MySQL 官方提供的一个开源、免费的数据库连接器,它允许 .NET 应用程序通过 ADO.NET 接口与 MySQL 数据库进行通信。这个库提供了数据访问、事务处理、参数化查询、存储过程等功能。在 C# 中...