oranie's blog

旧:iをgに変えると・・・なんだっけ・・・

MySQLメモ

 JAVA + MySQLTomcatで実験環境を作っている時に、どうしてもJAVAからMySQLに日本語がinsert、updateで入らなかった時のメモ。
環境:WindowsXP
   MySQL5.0.45
   JAVA jdk1.6.0_02

参考サイト:http://speenee.exblog.jp/465319/

確認する流れとして
MySQL自体の文字コードチェック
・作成したテーブルの文字コードチェック
・プログラムからの文字コードチェック
という流れでチェックしてほぼ直った。

まずMySQL自体の文字コードを確認する為、
mysql> show variables like 'char%';
を実行。

mysql> show variables like 'char%';
+--------------------------+---------------------------------------------------------------+
| Variable_name            | Value                                                         |
+--------------------------+---------------------------------------------------------------+
| character_set_client     | sjis                                                          |
| character_set_connection | sjis                                                          |
| character_set_database   | sjis                                                          |
| character_set_filesystem | binary                                                        |
| character_set_results    | sjis                                                          |
| character_set_server     | sjis                                                          |
| character_set_system     | utf8                                                          |
| character_sets_dir       | C:\Program Files\MySQL\MySQL Server 5.0\share\charsets\ |
+--------------------------+---------------------------------------------------------------+
8 rows in set (0.00 sec)

になっていればOK。なっていなければ個別に文字コードsjisに設定して行く。

次にテーブルを作成する時最後に
DEFAULT CHARSET=ujis;
を付ける。これでMySQL側の設定は大丈夫、なはず・・・。

最後にJAVAからMySQLに接続する時に、

String url = "jdbc:mysql:///test?useUnicode=true&characterEncoding=SJIS";

のように文字コードの指定でsjisが指定されているかをチェック。

この設定が全部出来ていたら、問題無く日本語の取扱が出来た。
誰かデフォルトで日本語使えるようにしてくれないかな・・・。