JDBC接続のエンコーディング設定方法

投稿者: Anonymous

この質問に関連します。

この記事の「(2) JDBC接続のエンコーディングをUTF-8に設定」のところに、GlassfishでのJDBC接続のエンコーディング設定方法が説明されています。

WildflyやJBossEAPで、上記設定に相当するものをやりたいのですが、どうやればいいのでしょうか?

【追記】
使用しているDBは、SQLServer, Oracle, PostgreSQLです。
現状、Oracleのみ、SJIS(CP932)外の文字を保存しようとすると、文字化けが発生しています。
アプリケーション(JPA)を介さずに、直接SQLを流す場合、Nプレフィクスをつけていれば文字化けしないので、DB側の問題ではないと推測しています。

解決

MySQLやH2などのDBを使用している場合、Standalone.xmlのconnection-urlにパラメタを設定することで可能だと思います。(下記はmysqlの例)

<datasource ...>
  <connection-url>jdbc:mysql://localhost:3306/db?useUnicode=true&amp;characterEncoding=utf8</connection-url>
   .....
</datasource>

また、こちらの回答にもしましたが、oracleの場合、standalone.sh等の起動パラメタで

-Doracle.jdbc.defaultNChar=true

をつけることでNCharを使うことができるようです。
Oracleの場合connection-urlで設定可能かどうかは環境がないため試せないですが、しっかり動くようです。

Wildfly 10 datasource configuration

回答者: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *