![]() |
||||
|
|
文字コードをUTF-8で接続する。 |
MySQLにUTF-8で繋ぐには、JDBCのURLにuseUnicode=true&characterEncoding=UTF-8を付けます。jdbc:mysql://ホスト/データベース名?useUnicode=true&characterEncoding=UTF-8 |
DATE型カラムがNULLの場合の挙動を指定する。 |
DATE型のカラム(DATEやTIMESTAMPなど)がNULL(0000-00-00 ...)の場合デフォルトでは例外が発生します。 例外では非常に困る場合は、挙動を変更するオプションがあります。 JDBCのURLにzeroDateTimeBehavior=convertToNullを付けます。 jdbc:mysql://ホスト/データベース名?zeroDateTimeBehavior=convertToNullconvertToNullの部分がオプションになりますが、いくつかあります。 ・exception ( デフォルト ) - SQLState の S1009 で SQLException を投入。 ・convertToNull - データの代わりに NULL を戻す。 ・round - データを、0001-01-01 という最も近い整数に丸める。 |
S2Daoでの設定 |
S2Daoを利用する際はjdbc.diconなどにJDBCのURLを設定するかと思いますが 以下のようにプロパティを設定するときは&を&にしてあげる必要があります。 jdbc:mysql://ホスト/データベース名?useUnicode=true&characterEncoding=UTF-8 |
フェッチの設定 |
MySQLでフェッチを利用するには以下のようにフェッチサイズを指定します。stmt = conn.createStatement(java.sql.ResultSet.TYPE_FORWARD_ONLY , java.sql.ResultSet.CONCUR_READ_ONLY); stmt.setFetchSize(Integer.MIN_VALUE);setFetchSizeでInteger.MIN_VALUEを指定しているのがポイントです。 Oracleのように自由に数値を指定できるわけではないので注意が必要です。 |
フェッチ時の注意 |
MySQLでフェッチを利用したSQLを発行すると1行ごとに読み込めますが すべて読み込む前に他のSQLを発行すると例外が発生します。(同一コネクション中で) |