42425


[この質問](https://ja.stackoverflow.com/questions/40133/nchar2-nvarchar2%E3%81%AE%E3%82%AB%E3%83%A9%E3%83%A0%E3%81%AB%E6%96%87%E5%AD%97%E5%8C%96%E3%81%91%E3%81%9B%E3%81%9A%E3%81%AB%E6%96%87%E5%AD%97%E5%88%97%E3%82%92%E6%A0%BC%E7%B4%8D%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95)に関連します。

[この記事の「(2)
JDBC接続のエンコーディングをUTF-8に設定」のところ](http://sakaisusie.hatenablog.com/entry/2014/07/02/001911)に、GlassfishでのJDBC接続のエンコーディング設定方法が説明されています。

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

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


CC BY-SA 3.0
2018-03-16T00:24:54.193
42424
2018-03-18T13:27:09.607
2018-03-16T02:59:42.947
8078
8078
question
java oracle jboss wildfly
JDBC接続のエンコーディング設定方法


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

[code]

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

また、[こちらの回答](https://ja.stackoverflow.com/questions/40133/nchar2-nvarchar2%E3%81%AE%E3%82%AB%E3%83%A9%E3%83%A0%E3%81%AB%E6%96%87%E5%AD%97%E5%8C%96%E3%81%91%E3%81%9B%E3%81%9A%E3%81%AB%E6%96%87%E5%AD%97%E5%88%97%E3%82%92%E6%A0%BC%E7%B4%8D%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95)にもしましたが、oracleの場合、standalone.sh等の起動パラメタで

> -Doracle.jdbc.defaultNChar=true

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

[Wildfly 10 datasource
configuration](https://docs.jboss.org/author/display/WFLY10/DataSource+configuration)


CC BY-SA 3.0
2018-03-16T02:24:08.980
42425
2018-03-18T13:27:09.607
2018-03-18T13:27:09.607
24823
24823
42424
answer