java.sql.SQLException:二进制编码结果集中第 10 列(共 12 列)中存在未知类型 '246

问题描述 投票:0回答:3

当我在 Windows 上启动 Tomcat 时,收到以下异常:

java.sql.SQLException: Unknown type '246' in column 10 of 12 in binary-encoded result set.
    at com.mysql.jdbc.MysqlIO.extractNativeEncodedColumn(MysqlIO.ja‌​va:3710)
    at com.mysql.jdbc.MysqlIO.unpackBinaryResultSetRow(MysqlIO.java‌​:3620)
    at com.mysql.jdbc.MysqlIO.nextRow(MysqlIO.java:1282)
    at com.mysql.jdbc.MysqlIO.readSingleRowSet(MysqlIO.java:2198)
    at com.mysql.jdbc.MysqlIO.getResultSet(MysqlIO.java:413)
    at com.mysql.jdbc.MysqlIO.readResultsForQueryOrUpdate(MysqlIO.j‌​ava:1899)
    at com.mysql.jdbc.MysqlIO.readAllResults(MysqlIO.java:1347)
    at com.mysql.jdbc.ServerPreparedStatement.serverExecute(ServerP‌​reparedSt atement.java:1393)
    at com.mysql.jdbc.ServerPreparedStatement.executeInternal(Serve‌​rPrepared Statement.java:958)
    at com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatem‌​ent.java:1705)

我正在使用

mysql-connector-java-5.1.21
JDBC 驱动程序。

我已将我的应用程序作为

war
部署在 Tomcat 中。我使用普通语句和准备好的语句。

java mysql windows tomcat jdbc
3个回答
1
投票

这可能是一个已知的错误:https://bugs.mysql.com/bug.php?id=14609

根据该错误跟踪器,已尝试对 JDBC 驱动程序版本 5.0.1 和 3.1.13 进行修复(不在服务器端),并且可能不是完整修复。

另请参阅

MySQLi - 服务器返回未知类型 246


0
投票
我遇到了类似的问题:

java.sql.SQLException: Unknown type '245 in column 6 of 10 in binary-encoded result set.

当我使用 JDBI 对 Dao 进行 REST 调用以根据某些条件获取结果集时,我得到了这个问题(查询:
SELECT * FROM entity WHERE id = :Id
)。实体有一个 JSON 列,我使用的是过时的 
mysql-connector-java
 版本。将其从 
5.1.27
 更新为 
8.0.28
 解决了问题。


-1
投票
当您的应用程序需要某种数据类型,但您从数据库收到另一种类型时,就会发生这种情况。例如。您期望得到一个

double

,但数据库给您一个 
int

您应该检查您期望的类型。

© www.soinside.com 2019 - 2024. All rights reserved.