SQL例外がスローされるという仕様?があるようです。
その為、DBViewerでは、以下のようなエラーが発生していました。
"Cannot convert value "0000-00-00 00:00:00" to TIMESTAMP"
"value "0000-00-00" cannot be represented as java.sql date"
対応方法としては、 SQL例外を一度キャッチし、SQLStateがS1009であれば
NULL文字を返すというようにしました。
protected String getTimestamp(ResultSet rs, int icol) throws SQLException {
try {
Timestamp value = rs.getTimestamp(icol);
if (rs.wasNull())
return nullSymbol;
return timeStampFormat.format(value);
} catch (SQLException e) {
if("S1009".equals(e.getSQLState())){
return nullSymbol;
}
throw e;
}
}
protected String getDate(ResultSet rs, int icol) throws SQLException {
try {
Date value = rs.getDate(icol);
if (rs.wasNull())
return nullSymbol;
return dateFormat.format(value);
} catch (SQLException e) {
if("S1009".equals(e.getSQLState())){
return nullSymbol;
}
throw e;
}
}
参考
http://dev.mysql.com/doc/refman/5.0/en/connector-j-installing-upgrading.html
0 件のコメント:
コメントを投稿