【问题标题】:Problem saving Text file in database using Hibernate使用 Hibernate 在数据库中保存文本文件时出现问题
【发布时间】:2024-05-01 11:00:02
【问题描述】:

我在将大型文本文件保存到 MySQL 数据库时遇到问题。如果文本文件大小约为 5KB,则它会成功保存。如果文件为 148KB,那么我从 Hibernate 收到此错误:

org.hibernate.exception.DataException: Could not execute JDBC batch update

这些是 Hibernate 显示的 SQL:

Hibernate: insert into file_table (ID,FILE) values (?, ?)

在我的休眠文件中,我使用 java.sql.Blob 来存储文件。

任何人都知道为什么它无法保存 148KB 的文件大小,但如果我打开同一个文件,将其缩减到 5KB 左右,它会成功保存吗?

我认为默认限制是 2GB?这很奇怪。

谢谢。

【问题讨论】:

    标签: java sql mysql hibernate


    【解决方案1】:

    这里是mysql中不同字符串列的最大长度的解释:

    http://dev.mysql.com/doc/refman/5.1/en/string-type-overview.html

    一个标准的 TEXT 列最多只允许 65,535 个字符,您可能需要一个 LONGTEXT 列,它允许每列大约 4Gb。

    【讨论】:

    • 谢谢。我以前在数据库中有 BLOB。我将数据库更改为 LONGBLOB 并且它可以工作!!!