首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

将blob从java存储到mysql 5.7.16时出现奇怪的异常

将blob从Java存储到MySQL 5.7.16时出现奇怪的异常可能是由于以下几个原因导致的:

  1. 数据库字段类型不匹配:在MySQL中,可以使用BLOB或者LONGVARBINARY类型来存储二进制数据。确保数据库表中对应的字段类型与Java代码中的数据类型一致。
  2. 数据库连接问题:检查数据库连接是否正常,包括连接字符串、用户名、密码等信息是否正确。确保能够成功连接到MySQL数据库。
  3. 数据库表结构问题:检查数据库表结构是否正确,包括表名、字段名、字段类型等是否与Java代码中的对应一致。
  4. 数据库驱动问题:确保使用的MySQL驱动版本与MySQL数据库版本兼容。可以尝试更新或切换到适合的MySQL驱动版本。
  5. 数据库操作异常:在Java代码中,确保正确地使用了PreparedStatement或者Statement来执行SQL语句,并且正确地设置了参数。

针对这个问题,可以尝试以下解决方案:

  1. 确认数据库表结构:检查数据库表结构,确保有一个合适的字段用于存储二进制数据。可以使用BLOB或者LONGVARBINARY类型。
  2. 确认数据库连接:检查数据库连接是否正常,包括连接字符串、用户名、密码等信息是否正确。
  3. 确认Java代码:确保在Java代码中正确地使用了PreparedStatement或者Statement来执行SQL语句,并且正确地设置了参数。
  4. 确认MySQL驱动版本:确保使用的MySQL驱动版本与MySQL数据库版本兼容。可以尝试更新或切换到适合的MySQL驱动版本。

如果问题仍然存在,可以提供更多的错误信息和代码片段,以便更好地帮助解决问题。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Mysql连接数据库异常汇总【必收藏】

在Centos上部署项目发现一个奇怪的问题,数据库连接一直抛异常。于是花了两个小时搜了各种数据库连接异常导致的原因,最终问题得以解决。...项目中遇到的问题很奇怪,在Centos上安装了Mysql数据库,项目使用的是Spring Boot。...后来仔细一想,不是小版本号的问题,而是安装JDK的版本问题,本机安装的JDK是从Oracle官网下载的,而服务器上存储为了省事直接使用yum命令安装的。而centos上默认给安装了OpenJDK。...导致问题的原因是:服务器有两块磁盘,中间执行过mv命令,将数据库的存储内容进行了移动操作,同时修改了datadir指向新的目录。...网络是有朋友升级到jdk1.8之后出现上述异常。 解决方案:删掉SSLv3。

2.5K10

从头开始学MySQL——-存储过程与存储函数(1)

如果能像Java那样,提供一个ID,就能查询到指定ID的记录,这样就可以复用之前写的SQL语句。对于查询SQL语句,我们能不能像Java那样,封装这个查询学生的SQL呢?...SQL的时候,出现了异常。...EXIT,那么就不会执行到这一步了 SET result = flag; -- 将普通变量的值给输出 END // -- 结束符要加 DELIMITER ; -- 重新定义存储过程结束符为分号...CALL insertStu(@result); SELECT @result,@info; -- @info没有申明就能调用到,可能是是全局变量吧 很奇怪,书上说如果遇到异常,将会执行定义条件后面的存储过程...@result的值为2的结果说明了存储过程执行到结尾。从表中的结果来看,也是正确的插入了两条数据。

45530
  • JDBC 进阶操作

    Blob(Binary Long Object)是二进制长对象的意思,Blob 列通常用于存储大文件,典型的 Blob 内容是一张图片或一个声音文件,由于它们的特殊性,必须使用特殊的方式来存储。...使用 Blob 列可以把图片、声音等文件的二进制数据保存在数据库里,并可以从数据库里恢复指定文件。   ...当需要从 ResultSet 里取出 Blob 数据时,可以调用 ResultSet 的 getBlob(int columnIndex) 方法,该方法将返回一个 Blob 对象,Blob 对象提供了getBinaryStream...☞ 数据库设计   MySQL 数据库里的 blob 类型最多只能存储 64KB 内容,这基本不够满足实际用途。所以使用 mediumblob 类型,该类型的数据列可以存储 16MB 内容。...可以完成数据到 JavaBean 的自动封装 new BeanPropertyRowMapper(T.class) queryForObject:查询结果,将结果封装为对象。

    89432

    MySQL优化面试题(2021最新版)

    [umw7407ty3.png] 小编分享的这份Java后端开发面试总结包含了JavaOOP、Java集合容器、Java异常、并发编程、Java反射、Java序列化、JVM、Redis、Spring MVC...异常 | java异常面试题(2021最新版) | https://cloud.tencent.com/developer/article/1819397 | | 21 | Java虚拟机 | Java...1、CHAR 和 VARCHAR 类型在存储和检索方面有所不同 2、CHAR 列长度固定为创建表时声明的长度, 长度值范围是 1 到 255 当 CHAR 值被存储时, 它们被用空格填充到特定长度,...字符串类型是: 1、SET 2、BLOB 3、ENUM 4、CHAR 5、TEXT 25、MySQL 数据库作发布系统的存储,一天五万条以上的增量, 预计运维三年,怎么优化?...UNIX_TIMESTAMP 是从 Mysql 时间戳转换为 Unix 时间戳的命令 FROM_UNIXTIME 是从 Unix 时间戳转换为 Mysql 时间戳的命令 70、列对比运算符是什么?

    17.6K45

    2020年MySQL数据库面试题总结(50道题含答案解析)

    MySQL_fetch_object – 从数据库返回结果行作为对象。 14、MyISAM 表格将在哪里存储,并且还提供其存储格式?...因此,在这种情况下,能被存储在 salary 列中的值的范围是从-9999999.99 到9999999.99。 23、MySQL 有关权限的表都有哪几个?...字符串类型是: (1)SET2 (2)BLOB (3)ENUM (4)CHAR (5)TEXT 25、MySQL 数据库作发布系统的存储,一天五万条以上的增量,预计运维三年,怎么优化?...要同时修改数据库中两个不同表时,如果它们不是一个事务的话,当第一个表修改完,可能第二个表修改过程中出现了异常而没能修改,此时就只有第二个表依旧是未修改之前的状态,而第一个表已经被修改完毕。...而当你把它们设定为一个事务的时候,当第一个表修改完,第二表修改出现异常而没能修改,第一个表和第二个表都要回到未修改的状态,这就是所谓的事务回滚 39、SQL 语言包括哪几部分?

    4K20

    一文彻底搞懂贾琏欲执事(JDBC)

    就是将内存中的数据存储在关系型数据库中,当然也可以存储在磁盘文件、XML数据文件中。 而在 Java中,数据库存取技术只能通过 JDBC 来访问数据库。     ...类型字段 6.1、BLOB类型简介     MySQL中,BLOB是一个二进制大型对象,是一个可以存储大量数据的容器,它能容纳不同大小的数据。...**MySQL有四种BLOB类型,他们除了在存储的最大信息量上不同外,除此之外他们是等同的。     ...UPDATE account SET balance = balance + 1000 WHERE name = '赵敏';     这个时候问题来了,当程序执行到第②步和第③步之间,突然出现一个异常,...**对于每一次数据库连接,使用完后都得断开,**否则,如果程序出现异常而未能关闭,将会导致数据库系统中的内存泄漏,最终将导致重启数据库。

    65620

    第11章、数据类型

    MySQL 以'YYYY-MM-DD HH:MM:SS'的格式,支持的范围从'1000-01-01 00:00:00' 到 '9999-12-31 23:59:59'。...CHAR和VARCHAR类型相似,但它们被存储和检索的方式不同。它们的最大长度和尾部空格是否保留也不同。 CHAR列长度可以是0到255之间的任何值。CHAR 存储值时,它们将空格填充到指定的长度。...如果您打算使用BINARY数据类型来存储二进制数据,并且您要求检索到的值与存储的值完全相同,那么您应该仔细考虑前面的填充和剥离特征 。 TEXT BLOB BLOB 是二进制字符串。...MySQL则根据对应模式进行处理: 如果启用严格模式,则将抛出异常并回滚事务; 如果未启用严格模式,MySQL将列设置为列数据类型的隐式默认值。...当启用严格模式时,三条指令均将抛出异常并回滚。 当未启用严格模式时,仅第三条指令会抛出异常并回滚。前两个语句插入隐式默认值,但第三个失败,因为缺省值(i)不能产生值。

    1.7K20

    Java Review(三十四、JDBC)

    , Blob 列通常用于存储大文件, 典型的 Blob 内容是一张图片或一个声音文件, 由于它们的特殊性, 必须使用特殊的方式来存储。...使用 Blob 列可以把图片、 声音等文件的二进制数据保存在数据库里, 并可以从数据库里恢复指定文件。...接着程序 rollback 了事务中的全部修改,执行第②条查询语句时将看到数据库又恢复到事务开始前的状态。...但当程序执行到 第 4 条 SQL 语句( ①处代码) 时, 这条语句将会引起外键约束异常, 该异常没有得到处理, 引起程序非正常结束, 所以事务自动回滚。...如果在批量更新的 addBatchO方法中添加了 select 查询语句, 程序将直接出现错误。

    77320

    2022年Java秋招面试,程序员求职必看的MySQL面试题

    已经有很多粉丝靠这份PDF拿下众多大厂的offer,今天在这里总结分享给到大家!...3、页面锁:开销和加锁时间界于表锁和行锁之间;会出现死锁;锁定粒度界于表锁和行锁之间,并发度一般。2、MySQL中有哪些不同的表格?...通常用于将两个或多个字段合并为一个字段。图片21、MySQL支持事务吗?图片22、MySQL里记录货币用什么字段类型好图片23、MySQL有关权限的表都有哪几个?图片24、列的字符串类型可以是什么?...字符串类型是:1、SET2、BLOB 3、ENUM 4、CHAR 5、TEXT25、MySQL数据库作发布系统的存储,一天五万条以上的增量,预计运维三年,怎么优化?...图片43、什么是存储过程?用什么来调用?图片44、如何通俗地理解三个范式?图片缺点:数据冗余以及数据异常,数据得修改需要更多的成本45、什么是基本表?什么是视图?

    1K30

    JDBC设计理念浅析 JDBC简介(一)

    统一的JDBC API接口,屏蔽了底层数据库的细节,可以使用一致性的编码(跨数据库)对数据库进行操作。 通过JDBC将JAVA应用于数据库访问连接进行解耦,可以相互独立发展,又能够结合使用。 ?...JDBC的接口与实现之间,通过Driver Manager 进行联结 JDBC API从Driver Manager获取服务,Driver Manager用来管理驱动程序,驱动程序可以很方便的注册到管理器中...JDBC API JDBC基本步骤有三个:连接、执行SQL、处理结果 另外还需要驱动管理器对注册的驱动程序进行管理 既然是代码,必然可能出现异常,所以还需要对相关异常进行处理 为了能够更好地将...PreparedStatement )  用于调用数据库存储过程(从PreparedStatement 派生)  Connection interface 接口 -- provides...programming language   SQL类型到Java编程语言中的类和接口的标准映射 Array interface 接口-- mapping for SQL ARRAY

    1K20

    MySQL性能优化(二):选择优化的数据类型

    本文将介绍如何选择优化的数据类型,来提高MySQL的性能,将会选取最为常用的类型进行说明,便于在实际开发中创建表、优化表字段类型时提供帮助。...对于应用程序而言,他们都能很好的表示日期,但是再某些场景下,各有不同。接下来让我们一起看看吧。 1.DATETIME DATETIME类型能够保持很大范围的日期,从1001年到9999年,精度为秒。...TIMESTAMP只使用4个字节的存储空间,因此它的范围比DATETIME小得多,只能表示从1970年到2038年。...BLOB类型存储的是二进制数据,没有排序规则或字符集。 MySQL中不能将TEXT和BLOB类型的列进行索引,也不能使用这些索引消除排序。...例如,一些ORM框架(如,MyBatis、Hibernate),会存储任意类型的数据列到任意类型的后端数据,这通常意味着没有设计使用更优的数据类型来存储,后期安全隐患很大,出现问题也很难排查。

    1.4K00

    MySQL创建表失败的问题

    今天有一个朋友问我一个MySQL的建表问题,问题的现象是创建表失败,根据他的反馈,问题比较奇怪, CREATE TABLE XXX ..此处省略260多个字段 `xxxxIsAllowIn` varchar...我把文本拷贝到本地,想复现,结果因为乱码直接执行失败,对于这种情况,还是同事帮我做了下问题过滤,采用如下的方式即可把注释删除。 cat a.sql |sed 's/COMMENT'....得到的一个初步结论就是先设置innodb_strict_mode为off,默认5.7是开启的,当然从MySQL5.5版本开始,可以开启InnoDB严格检查模式,如果采用了页数据压缩功能后,建议是开启该功能...在创建表,更改表和创建索引时,如果写法有错误,不会有警告信息,而是直接抛出错误,这样就可直接将问题扼杀在摇篮里。 当然这个里的这个问题现象确实比较纠结。...解决方法3: 从表结构设计入手,尽可能拆分这个表的逻辑,把它拆分为多个表。一个表的字段数尽可能不要太多。

    5K70

    万无一失的数据库设计,解决MySQL数据过长报错com.mysql.cj.jdbc.exceptions.MysqlDataTruncation

    优化:使用生成类型主键如UUID替代手动编号将冗余字段如名称提取出来单独管理分表设计将重复字段拆分开标题:《Java开发实战:打败MysqlDataTruncation异常,数据截断不再是难题》文章正文...异常是许多Java开发者的噩梦。...这个异常通常发生在尝试将太长的数据插入到MySQL列中时。今天,我们将深入探讨如何从设计和架构层面避免这一问题,并提供实用的代码示例。数据库设计的艺术设计数据库时,我们必须深入理解业务需求。...但如果可能会有更长的文本,我们可能需要考虑TEXT或BLOB类型。字段长度预估字段长度的预估应该基于现实的数据分析。如果你正在存储用户评论,那么分析现有数据可以帮助你设定一个合理的最大长度。...}}避免异常的最佳实践除了上述方法外,还有一些其他最佳实践可以帮助我们避免MysqlDataTruncation异常:使用ORM框架:像Hibernate这样的ORM框架通常会在将数据持久化到数据库之前进行长度检查

    2.1K10

    47 张图带你 MySQL 进阶!!!

    奇怪,为什么没有了呢?网上求证一下,在 5.5.3 取消了这个参数 可以通过下面两种方法查询当前数据库支持的存储引擎 show engines \g ?...如果不指定存储引擎的话,从MySQL 5.1 版本之后,MySQL 的默认内置存储引擎已经是 InnoDB了。建一张表看一下 ? 如上图所示,我们没有指定默认的存储引擎,下面查看一下表 ?...' 'cxuan' 6个字节 可以看到,如果使用 varchar 的话,那么存储的字节将根据实际的值进行存储。...其他优化 BLOB 和 TEXT 的方式: 非必要的时候不要检索 BLOB 和 TEXT 索引 把 BLOB 或 TEXT 列分离到单独的表中。...局部变量 MySQL 中的局部变量与 Java 很类似 ,Java 中的局部变量是 Java 所在的方法或者代码块,而 MySQL 中的局部变量作用域是所在的存储过程。

    90040

    Spring Cloud Sleuth 之Greenwich版本全攻略

    由于服务单元数量众多,业务的复杂性较高,如果出现了错误和异常,很难去定位。主要体现在一个请求可能需要调用很多个服务,而内部服务的调用复杂性决定了问题难以定位。...此外 Sleuth 可以帮助我们: 耗时分析: 通过 Sleuth 可以很方便的了解到每个采样请求的耗时,从而分析出哪些服务调用比较耗时; 可视化错误: 对于程序未捕捉的异常,可以通过集成 Zipkin...Storage:存储组件,它主要对处理收集器接收到的跟踪信息,默认会将这些信息存储在内存中,我们也可以修改此存储策略,通过使用其他存储组件将跟踪信息存储到数据库中。...这需要在程序启动的时候,通过环境变量的形式到环境中,然后zikin-server从环境变量中读取。...现在讲解如何将链路数据存储在Mysql数据库中。

    75340

    JDBC核心技术

    持久化的主要应用是将内存中的数据存储在关系型数据库中,当然也可以存储在磁盘文件、XML数据文件中。...可以在finally中关闭,保证及时其他代码出现异常,资源也一定能被关闭。...结果如下: 代码实现3:完成学生信息的删除功能 操作BLOB类型字段 MySQL BLOB类型 MySQL中,BLOB是一个二进制大型对象,是一个可以存储大量数据的容器,它能容纳不同大小的数据。...MySQL的四种BLOB类型(除了在存储的最大信息量上不同外,他们是等同的) 实际使用中根据需要存入的数据大小定义不同的BLOB类型。 需要注意的是:如果存储的文件过大,数据库的性能会下降。...**否则,如果程序出现异常而未能关闭,将会导致数据库系统中的内存泄漏,最终将导致重启数据库。(回忆:何为Java的内存泄漏?)

    17410

    springboot第29集:springboot项目详细

    ,插入的数据列数与表的列数不匹配,导致出现了异常。...通常,这种错误在数据库更新过程中出现,可能是因为你的代码中尝试将字符串转换为数字类型,但这个字符串不符合数字的格式要求,导致转换失败。...日志记录: 在代码中加入更详细的日志记录,记录传递给数据库更新的值,帮助你找出哪个部分出现了问题。 异常处理: 确保在代码中有适当的异常处理,以便在出现错误时,能够捕获和处理异常,避免整个操作崩溃。...主要错误是 java.lang.NumberFormatException,而导致此错误的原因是尝试将字符串 "/profile/avatar/2023/06/23/blob_20230623212234A001...问题的根本在于尝试将字符串 "/profile/avatar/2023/06/23/blob_20230623212234A001.png" 转换为数字,而此字符串不是有效的数字格式,因此引发了 NumberFormatException

    31930
    领券