Java 尝试将文件作为longblob存储到mysql数据库时,字符串值不正确
我有一个简单的web应用程序来上传文件并将它们存储在一个longblob中到一个mysql数据库中。但我有以下例外:Java 尝试将文件作为longblob存储到mysql数据库时,字符串值不正确,java,mysql,spring,hibernate,Java,Mysql,Spring,Hibernate,我有一个简单的web应用程序来上传文件并将它们存储在一个longblob中到一个mysql数据库中。但我有以下例外: Caused by: java.sql.SQLException: Incorrect string value: '\xA2\x04\x02(\xA0\x00...' for column 'value' at row 1 at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:946) at co
Caused by: java.sql.SQLException: Incorrect string value: '\xA2\x04\x02(\xA0\x00...' for column 'value' at row 1
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:946)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2985)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1631)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1723)
at com.mysql.jdbc.Connection.execSQL(Connection.java:3283)
at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1332)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1604)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1519)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1504)
at com.mchange.v2.c3p0.impl.NewProxyPreparedStatement.executeUpdate(NewProxyPreparedStatement.java:105)
at org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.executeUpdate(ResultSetReturnImpl.java:133)
... 68 more
这是我的表格:
<form id="myForm" action="/creategroup" enctype="multipart/form-data" method="POST">
<input type="file" name="component_1" id="component_1">
and other stuff...
以下是我对该字段的mysql定义:
value LONGBLOB NOT NULL
可能是什么问题?我应该检查什么?我应该更改什么使其工作?html表单中的值始终来自类型字符串。即使是二进制数据也将转换为字符串。所以你必须先把它转换回二进制。是的,我能理解。。。但是有什么解决方案吗?post-accept字符串中的函数,但在我的例子中,我已经有了一个字节数组。我有这个:multipartFile.getBytes顺便说一下。。。问题的原因是@Audited注释。我必须把它移走。
value LONGBLOB NOT NULL