Ajax Webアプリケーション奮闘記 〜関西温泉マップ〜

Ajax Webアプリケーション作成にあたり、技術的メモや奮闘内容、未解決問題等を掲載していきます。 もちろん、関西温泉マップはβ版なので無料でご利用いただけます。


私おすすめのレンタルサーバー | ここが便利!レノボWeb広告限定ストア

MySql とJavaアプリ(Eclipse)間で文字化け大ハマりメモ

WindowsマシンにMySqlを導入してみました。
コマンドプロンプトより、テーブルを作成し、データを投入。
Eclipse上でMySqlにアクセスするJavaアプリを開発し、早速SELECTをかけてみたら、文字化けしました。
その時の状況と解決手順をメモ。
(やり方はいろいろあると思いますが・・)

【環境】
OS:Windows XP
MySql:mysql-essential-4.1.22-win32
Java:1.6.0_03
Eclipse:3.2.0

【Javaコード】
	public void testSelect() {

try {
//ドライバクラスをロード
Class.forName("org.gjt.mm.mysql.Driver");

// データベースへ接続
String url = "jdbc:mysql:///db?useUnicode=true&characterEncoding=SJIS";
Connection con = DriverManager.getConnection(url);
// ステートメントオブジェクトを生成
Statement stmt = con.createStatement();
String sql = "SELECT * FROM TEST_TABLE";
// クエリーを実行して結果セットを取得
ResultSet rs = stmt.executeQuery(sql);
// 検索された行数分ループ
while(rs.next()){
// NOを取得
int no = rs.getInt("NO");
// 言語を取得
String test1 = rs.getString("TEST1");
// メッセージを取得
String test2 = rs.getString("TEST2");
// 表示
System.out.println(no + " " + test1 + " " + test2);
}
// データベースから切断
stmt.close();
con.close();
}
catch(Exception e){
e.printStackTrace();
}

}


上記JavaコードのcharacterEncodingのところをいろいろ変えてみましたが、変化なし・・。

【DBテーブルのcharcter_setの確認】
mysql> show variables
-> like 'char%';
+--------------------------+---------------------------------------------------------+
| Variable_name | Value |
+--------------------------+---------------------------------------------------------+
| character_set_client | latin1 |
| character_set_connection | latin1 |
| character_set_database | sjis |
| character_set_results | latin1 |
| character_set_server | sjis |
| character_set_system | utf8 |
| character_sets_dir | C:\Program Files\MySQL\MySQL Server 4.1\share\charsets/ |
+--------------------------+---------------------------------------------------------+


「latin1」とかなってるのが原因かと・・。
下記コマンドで「sjis」に変更。
mysql> set names sjis


【(変更後)DBテーブルのcharcter_setの確認】
mysql> show variables
-> like 'char%';
+--------------------------+--------------------------------------------------------------+
| Variable_name | Value |
+--------------------------+--------------------------------------------------------------+
| character_set_client | sjis |
| character_set_connection | sjis |
| character_set_database | sjis |
| character_set_results | sjis |
| character_set_server | sjis |
| character_set_system | utf8 |
| character_sets_dir | C:\Program Files\MySQL\MySQL Server 4.1\share\charsets/ |
+--------------------------+--------------------------------------------------------------+


とりあえず、これで解決!

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバックURLはこちら
http://ajaxapp.blog79.fc2.com/tb.php/95-178e1287
この記事にトラックバックする(FC2ブログユーザー)

無料ホームページ アフィリエイト レンタルサーバー FC2ブログ 一戸建て