首页
学习
活动
专区
工具
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.4K10

从头开始学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结果说明了存储过程执行结尾。表中结果来看,也是正确插入了两条数据。

42930

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:查询结果,结果封装为对象。

86332

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.4K45

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 语言包括哪几部分?

3.9K20

第11章、数据类型

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

1.7K20

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

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

61420

Java Review(三十四、JDBC)

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

73320

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

98520

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: 表结构设计入手,尽可能拆分这个表逻辑,把它拆分为多个表。一个表字段数尽可能不要太多。

4.9K70

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

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

1.7K10

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局部变量作用域是所在存储过程。

89140

Spring Cloud Sleuth 之Greenwich版本全攻略

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

73240

springboot第29集:springboot项目详细

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

29030

MySQL---数据库入门走向大神系列(九)-用Java向数据库读写大文本二进制文件数据

, user, password); } catch (IOException e) { throw new RuntimeException("配置文件出现异常...; } catch (ClassNotFoundException e) { throw new RuntimeException("Drive.Class文件出现异常...", e); } catch (SQLException e) { throw new RuntimeException("数据库访问出现异常", e);...//我们直接在src文件下建立.java文件是无法被myeclipse原样拷贝bin目录下。如果需要读入.java文件,就需要直接去把.java文件放入对应bin目录下。...虽然说可以存储大数据,但一般不会这样去存储大数据,因为效率太低了,除非是要求数据有很强保密性,才会这样去存储! 一般式存储那个文件绝对路径就可以了。

78310
领券