[Seasar-user:7571] Re: [質問] S2Dao のサンプルが動きません。

Koichi Kobayashi [E-MAIL ADDRESS DELETED]
2007年 5月 10日 (木) 13:30:27 JST


小林 (koichik) です.

Date:    Thu, 10 May 2007 11:12:06 +0900
From:    "satou jun" <[E-MAIL ADDRESS DELETED]>
To:      <[E-MAIL ADDRESS DELETED]>
Subject: [Seasar-user:7569] Re: [質問] S2Dao のサンプルが動きません。

> 現在、日本語の登録でエラーが出るという問題に突き当たっています。

お使いの RDBMS は何でしょう?
もし元記事と同じく MySQL だとすると,
j2ee.dicon (Seasar2.3 の場合) または jdbc.dicon
(Seasar2.4 の場合) の設定の問題かもしれません.

Seasar2.4 に含まれている jdbc.dicon のサンプル
(配布ファイルの resources ディレクトリにあります) には
以下の記述があります.

  <!-- MySQL
  - MySQL4.0以下でマルチバイト文字を扱う場合には,URL指定の後に,
    以下の接続パラメータを追加で指定してください.
    useUnicode=true
    characterEncoding=[MySQLのエンコーディングに対応した
    Javaのエンコーディング名]
    例:"jdbc:mysql://localhost:3306/test?useUnicode=true" +
    "&amp;characterEncoding=Windows-31J"
    
  - MySQL5.0以降で,エンコーディングがeucjpmsの列を扱う場合には,
    URL指定の後に,以下の接続パラメータを追加で指定してください.
    characterEncoding=UTF-8またはWindows-31J
    characterSetResults=UTF-8またはWindows-31J
    例:"jdbc:mysql://localhost:3306/test?characterEncoding=UTF-8" +
    "&amp;characterSetResults=UTF-8"
    この指定をしない場合,Java側でUCS-2⇔EUC_JP_Solarisの変換が
    行なわれるため,ユーザー定義外字などの一部の文字が化けます.
    この指定をすることで,MySQL側でeucjpms⇔ucs2⇔utf8(cp932)の
    変換が行なわれ,Java側でUCS-2⇔UTF-8(Windows-31J)の変換が
    行なわれるようになります.この結果,文字化けを防げます.
    なおJIS X 0212(補助漢字)を使用する場合は,Windows-31Jではなく
    UTF-8を指定する必要があります.
    
  - 上記以外の場合は,my.cnfでdefault-character-setの設定を適切に
    (cp932やutf8など.デフォルトのlatin1は不可)行なっていれば,
    文字化けは防げます.
  -->
  <!--
  <component name="xaDataSource"
    class="org.seasar.extension.dbcp.impl.XADataSourceImpl">
    <property name="driverClassName">
      "com.mysql.jdbc.Driver"
    </property>
    <property name="URL">
      "jdbc:mysql://localhost:3306/test"
    </property>
    <property name="user">"xxx"</property>
    <property name="password">"xxx"</property>
  </component>
  -->

MySQL をお使いの場合は上記に従って設定を変更してみて
ください.

MySQL 以外の場合はその RDBMS の名称やバージョン,
RDBMS 側の文字コードの設定やカラムの型 (CHAR/VARCAR か
NCHAR/NVARCHAR かなど) 等を教えてください.
また,S2Dao だけでなく,Seasar2 本体のバージョンも
教えてください.


-- 
<component name="koichik">
    <property name="fullName">"Koichi Kobayashi"</property>
    <property name="email">"[E-MAIL ADDRESS DELETED]"</property>
    <property name="blog">"http://d.hatena.ne.jp/koichik"</property>
</component>




Seasar-user メーリングリストの案内