DBViewer Plugin for Eclipse とは

DBViewer Plugin for Eclipse(以下DBViewer)は、Eclipse(統合開発環境)を拡張するためプラグインです。
Eclipseに「データベース・フロントエンド」機能を提供します。(JDBCドライバーを使用しています)
DBAの方よりも開発者(Developer)の方をターゲットに機能を提供しています。
※Microsoft AccessやExcelには接続できません




2008年7月23日水曜日

MySQLのDATE, DATETIME, TIMESTAMPへの対応

MySQLのJDBC Driverは、DATE型やDATETIME型、TIMESTAMP型にNULLが入っていると、
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 件のコメント: