やろうとすると例外が発生します(以下を参照)
resultset.getString("add_date");
DATETIME値0000-00-0000:00:00(DATETIMEの準NULL値)を含むMySQLデータベースへのJDBC接続の場合、値を文字列としてではなく文字列として取得しようとしていますが、オブジェクト。
私はこれを回避しました
SELECT CAST(add_date AS CHAR) as add_date
これは機能しますが、ばかげているようです...これを行うためのより良い方法はありますか?
私のポイントは、生のDATETIME文字列が必要なので、そのまま自分で解析できるということです。
注:ここで0000が登場します:( http://dev.mysql.com/doc/refman/5.0/en/datetime.htmlから)
不正なDATETIME、DATE、またはTIMESTAMP値は、適切なタイプの「ゼロ」値( '0000-00-00 00:00:00'または '0000-00-00')に変換されます。
特定の例外はこれです:
SQLException: Cannot convert value '0000-00-00 00:00:00' from column 5 to TIMESTAMP.
SQLState: S1009
VendorError: 0
java.sql.SQLException: Cannot convert value '0000-00-00 00:00:00' from column 5 to TIMESTAMP.
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1055)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:956)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:926)
at com.mysql.jdbc.ResultSetImpl.getTimestampFromString(ResultSetImpl.java:6343)
at com.mysql.jdbc.ResultSetImpl.getStringInternal(ResultSetImpl.java:5670)
at com.mysql.jdbc.ResultSetImpl.getString(ResultSetImpl.java:5491)
at com.mysql.jdbc.ResultSetImpl.getString(ResultSetImpl.java:5531)