[解決済み] JDBCでのDATETIME値 0000-00-00 00:00:00の取り扱いについて
質問
を実行しようとすると、例外が発生します。
resultset.getString("add_date");
オブジェクトとしてではなく、文字列として値を取得しようとしているにもかかわらず、DATETIME 値 0000-00-00 00:00:00 (DATETIME の準 null 値) を含む MySQL データベースへの JDBC 接続のために、DATETIME 値を取得する必要があります。
私はこれを回避するために
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)
どのように解決するのですか?
私は同じ問題を解決しようとして、これに出くわしました。 私が作業しているインストールは JBOSS と Hibernate を使用しているので、私はこれを別の方法で行う必要がありました。 基本的なケースについては、以下のように
zeroDateTimeBehavior=convertToNull
を接続 URI に追加します。
設定プロパティページ
.
私は、hibernate の設定にそのパラメーターを置くことに言及する他の提案を、各地で見つけました。
で hibernate.cfg.xml にあります。 :
<property name="hibernate.connection.zeroDateTimeBehavior">convertToNull</property>
で hibernate.properties :
hibernate.connection.zeroDateTimeBehavior=convertToNull
しかし、私はそれを自分の mysql-ds.xml として JBOSS 用のファイルを作成しました。
<connection-property name="zeroDateTimeBehavior">convertToNull</connection-property>
これが誰かの助けになることを願っています :)
関連
-
Git Pull Failed マージされていないファイルがあるため、Pull できません。
-
Uncaught ReferenceError: は定義されていません。
-
-bash: java: コマンドが見つからない 解決方法
-
SpringBoot 起動エラー java.nio.charset.MalformedInputException: 入力長 = 2 解決
-
keytool error: java.io.FileNotFoundException: cacerts (アクセス拒否されました。)
-
swagger2 モデルが表示されない モデルが見つからない @ApiModel アノテーションが表示されない問題
-
[解決済み] SQLテーブルで重複する値を検索する
-
[解決済み] SQL Server の DateTime データ型から日付だけを返す方法
-
[解決済み] Javaはパラメータのデフォルト値をサポートしていますか?
-
[解決済み] ...値に挿入する ( SELECT ... FROM ... )
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
undefined[sonar] sonar:デフォルトのスキャンルール
-
Collections.sortがdoubleでソートできない問題を完璧に解決する。
-
ajax コミット リソースの読み込みに失敗しました: サーバーはステータス 400 で応答しました ()
-
SocketException java.netの4つの例外解決策。
-
maven レポート エラー 解決不可能な親POM
-
API の戻り値を処理するために ResponseEntity を使用する
-
Junitのユニットテストエラー
-
JNIエンカウンターエラー:構造体またはユニオンではない何かでメンバー 'FindClass' のリクエスト
-
アクセス制限の解決方法: ---- in Java
-
CAS 5.1.8でhttpをサポートし、認証されていない認可サービスエラーのプロンプトが表示される問題を解決した。