当我在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驱动程序
我已经在Tomcat中部署了我的应用程序作为war
。我使用常规语句和准备语句。
3条答案
按热度按时间bjp0bcyl1#
这可能是一个已知的bug:https://bugs.mysql.com/bug.php?id=14609
根据该错误跟踪器,尝试修复JDBC驱动程序的5.0.1和3.1.13 * 版本(不在服务器端),并且可能不是完整的修复。
参见MySQLi - Server returned unknown type 246
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
解决了此问题。bprjcwpo3#
当您的应用程序需要某种数据类型,但您从数据库接收到另一种类型时,就会发生这种情况。例如,您期望的是
double
,但数据库给您的是int
。你应该检查你所期望的类型。