【发布时间】:2012-12-31 02:10:24
【问题描述】:
我正在使用以下例程将信息存储在数据库中:
try{
connection = cpds.getConnection();
pstmt = connection.prepareStatement("select setSomeData(?,?)");
//set data to the statement
res = pstmt.executeQuery();
//process data retrieved
} catch (SQLException ex) {
System.out.println("SQLException: " + ex);
ex.printStackTrace();
return null;
} finally {
try {
pstmt.close();
connection.close();
} catch (SQLException ex) {
}
}
但有时我会遇到此异常:
SQLException:com.mysql.jdbc.MysqlDataTruncation:数据截断:BIGINT UNSIGNED 值超出“(tstmp@5 - lastEvent@11)”的范围
com.mysql.jdbc.MysqlDataTruncation:数据截断:BIGINT UNSIGNED 值超出 '(tstmp@5 - lastEvent@11)'的范围
在 com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4096)
在 com.mysql.jdbc.MysqlIO.nextRowFast(MysqlIO.java:2066)
在 com.mysql.jdbc.MysqlIO.nextRow(MysqlIO.java:1922)
在 com.mysql.jdbc.MysqlIO.readSingleRowSet(MysqlIO.java:3414)
在 com.mysql.jdbc.MysqlIO.getResultSet(MysqlIO.java:481)
在 com.mysql.jdbc.MysqlIO.readResultsForQueryOrUpdate(MysqlIO.java:3120)
在 com.mysql.jdbc.MysqlIO.readAllResults(MysqlIO.java:2288)
在 com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2709)
在 com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2677)
在 com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:2134)
在 com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:2300)
在 com.mchange.v2.c3p0.impl.NewProxyPreparedStatement.executeQuery(NewProxyPreparedStatement.java:116)
是否可以了解有关异常的更多信息,例如受影响的列以及我尝试存储的值?
例如,对于异常:.MySQLTransactionRollbackException: Deadlock found when trying to get lock;
查询SHOW ENGINE INNODB STATUS 很有用...
【问题讨论】: