[前][次][番号順一覧][スレッド一覧]

mysql:12214

From: Tetsuro IKEDA <Tetsuro IKEDA <tetsuro@xxxxxxxxxx>>
Date: Tue, 04 Oct 2005 15:17:18 -0700
Subject: [mysql 12214] Re: 皆さんの使っているJDBCドライバのバージョン

おはようございます。池田です。

テーブル上にデータ値"0000-00-00 00:00:00"があって、
それをConnector/JからResultSet.getTimestamp()で取得する際の
振る舞いについて、Mark Matthewsに話を聞いてみました。

既に先ほどのメールで触れたドキュメントに書かれた内容と大きな違いはないのですが、
このような実装を選んだ背景を少し説明してくれましたのでご紹介します。

・そもそもこの問題はJava側で"0000-00-00 00:00:00"の値を持てないことに発端している
・サーバ側の値をクライアント側(Connector/J)で正確に持てない場合、取るべき振る舞いは
 従来のMySQL流の方法(今の例でいうとnullを返す)よりも標準に乗っ取った方法を
 優先するように考えている(今の例でいうとSQLException)。
・nullを返す従来の実装では、もともとサーバ側の値が"null"であった場合との判別を
 付けることができないため、"0000-00-00"であったという情報が欠落してしまう。
・"0001-01-01 00:00:00"を返す実装も、やはり同様に情報が欠落する。

従ってデフォルトとしてはSQLExceptionをスローする実装を選ぶことになった、とのことでした。

今回の件に限らず、Connector/Jへの疑問、要望、バグと思わしき個所など
ありましたらお声がけいただけますと助かります。

引き続き何かありましたらよろしくお願いいたします。

Tetsuro IKEDA wrote:
> 池田です。
> 
> Connector/Jにおけるフィールド値 "0000-00-00 00:00:00"の取り扱いですが、
> 調べていたらどうも既にドキュメントに結論のようなものが書かれておりました。
> 
> http://dev.mysql.com/doc/mysql/en/cj-upgrading.html#cj-upgrading-3-0-to-3-1
> 
> ・JDBC仕様/SQL標準により忠実なのはSQLExceptionをスローする挙動
> ・ver3.1.4から実装を変更した
> ・現在はオプションを指定することで挙動を選ぶことができる
> 
> プロパティ名:zeroDateTimeBehavior
> 値の候補:exception ・・・SQLExceptionをスローする(デフォルト)
> 値の候補:convertToNull ・・・nullを返す(ver3.0系と同じ動き)
> 値の候補:round ・・・"0001-01-01 00:00:00"を返す
> 
> とのことです。既にドキュメントにもこう書かれてしまっていますので、
> これを変更するのはちょっと難しいかなと思います・・・。
> 
> この話だけで考えれば、データソース設定なりの部分で
> 渡す接続プロパティを1つ追加(zeroDateTimeBehavior=convertToNull)
> するだけということにはなりますが。
> 
> 他にも同URLにver3.0系からver3.1系へアップグレードする際の注意点のようなものが
> 列挙されております。よろしければそちらもご参照ください。



-- 
Tetsuro Ikeda, Intern Development & Support
MySQL Inc, www.mysql.com
Office: +1-206-336-2030   Mobile: +1-206-661-4293
Are you MySQL certified?  www.mysql.com/certification

[前][次][番号順一覧][スレッド一覧]

     12200 2005-10-01 23:53 [NAGASAWA Teruo <tech] 皆さんの使っているJDBCドライバのバージョン
     12201 2005-10-01 23:53 ┣["TAKAHASHI, Tomohiro]                                       
     12202 2005-10-01 23:58 ┃┗["TAKAHASHI, Tomohiro]                                     
     12203 2005-10-02 00:23 ┃ ┗[NAGASAWA Teruo <tech]                                   
     12206 2005-10-03 15:28 ┗[Tetsuro IKEDA <tetsu]                                       
     12211 2005-10-05 01:35  ┗[NAGASAWA Teruo <tech]                                     
     12212 2005-10-05 02:13   ┣[Tetsuro IKEDA <ikdtt]                                   
     12213 2005-10-05 06:22   ┣[Tetsuro IKEDA <ikdtt]                                   
->   12214 2005-10-05 07:17   ┃┣[Tetsuro IKEDA <tetsu]                                 
     12216 2005-10-05 14:52   ┃┗["NAGASAWA Teruo" <te] Re: 皆さんの使っているJDBC= ?ISO-2022-JP?B?GyRCJUklaSUkJVAkTiVQITwlOCVnJXMbKEI=?=
     12217 2005-10-05 15:44   ┃ ┗["TAKAHASHI, Tomohiro] Re: 皆さんの使っているJDBC=?ISO-202 2-JP?B?GyRCJUklaSUkJVAkTiVQITwlOCVnJXMbKEI=
     12218 2005-10-05 17:00   ┃  ┗[NAGASAWA Teruo <tech]                             
     12215 2005-10-05 11:21   ┗["TAKAHASHI, Tomohiro]