MySQLメモ
JAVA + MySQL + Tomcatで実験環境を作っている時に、どうしても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側の設定は大丈夫、なはず・・・。
String url = "jdbc:mysql:///test?useUnicode=true&characterEncoding=SJIS";
のように文字コードの指定でsjisが指定されているかをチェック。
この設定が全部出来ていたら、問題無く日本語の取扱が出来た。
誰かデフォルトで日本語使えるようにしてくれないかな・・・。