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

2ledvvac  于 2023-10-15  发布在  Mysql
关注(0)|答案(3)|浏览(87)

当我在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驱动程序
我已经在Tomcat中部署了我的应用程序作为war。我使用常规语句和准备语句。

bjp0bcyl

bjp0bcyl1#

这可能是一个已知的bug:https://bugs.mysql.com/bug.php?id=14609
根据该错误跟踪器,尝试修复JDBC驱动程序的5.0.1和3.1.13 * 版本(不在服务器端),并且可能不是完整的修复。
参见MySQLi - Server returned unknown type 246

svdrlsy4

svdrlsy42#

我遇到了类似的问题: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)。Entity有一个JSON列,我使用的是过时的mysql-connector-java版本。将其从5.1.27更新为8.0.28解决了此问题。

bprjcwpo

bprjcwpo3#

当您的应用程序需要某种数据类型,但您从数据库接收到另一种类型时,就会发生这种情况。例如,您期望的是double,但数据库给您的是int
你应该检查你所期望的类型。

相关问题