当我在 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.java: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.java:1899)
at com.mysql.jdbc.MysqlIO.readAllResults(MysqlIO.java:1347)
at com.mysql.jdbc.ServerPreparedStatement.serverExecute(ServerPreparedSt atement.java:1393)
at com.mysql.jdbc.ServerPreparedStatement.executeInternal(ServerPrepared Statement.java:958)
at com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:1705)
我正在使用
mysql-connector-java-5.1.21
JDBC 驱动程序。
我已将我的应用程序作为
war
部署在 Tomcat 中。我使用普通语句和准备好的语句。
这可能是一个已知的错误:https://bugs.mysql.com/bug.php?id=14609
根据该错误跟踪器,已尝试对 JDBC 驱动程序版本 5.0.1 和 3.1.13 进行修复(不在服务器端),并且可能不是完整修复。
另请参阅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
解决了问题。
double
,但数据库给您一个
int
。您应该检查您期望的类型。