- 締切済み
javaでGUIのDB(MYSQL)登録時文字化け
JDK 1.6.0 MySQL 5.1 NetBeansのIDEツールを使用してSWINGのGUIアプリを勉強がてら作成しています。 JDBC接続でMYSQLにINSERTまではなんとかできましたが日本語を登録しようとすると文字化けが発生してしまいます。 登録結果:100006 ???????? ???? 0359210188 ???????????????????? この文字化けはJAVA、MYSQLのどちらで直すべきものでしょうか。 ちなみにMYSQLのMY.INIの下記の設定を変更してみましたがダメでした。 default-character-set=latin1⇒default-character-set=utf8 下記が登録時のソースです。よろしくお願いいたします。 private void jButton6ActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: try{ String sSql = ""; // 1.JDBC Driver の登録 Class.forName("com.mysql.jdbc.Driver").newInstance(); // 2.データベースへの接続 Connection con = DriverManager.getConnection( "jdbc:mysql://localhost:3306/MyNewDatabase", "root", "umemoto"); // 3.SQL ステートメント・オブジェクトの作成 Statement stmt = con.createStatement(); // sSql += "INSERT INTO M_KAIIN ("; sSql += "NK_KAIIN"; sSql += ",NM_KAIIN"; sSql += ",NK_TEL"; sSql += ",NM_ADD"; sSql += ") VALUES ("; sSql += "'" + jTextField1.getText() + "'" ; sSql += ",'" + jTextField2.getText() + "'" ; sSql += ",'" + jTextField3.getText() + "'" ; sSql += ",'" + jTextField4.getText() + "'" ; sSql += ");" ; //実行 stmt.execute(sSql); // 6.データベースのクローズ stmt.close(); con.close(); } catch (SQLException e1) { System.out.println( "SQLException: " + e1.getMessage()); System.out.println( " SQLState: " + e1.getSQLState()); System.out.println( " VendorError: " + e1.getErrorCode()); } catch (Exception e2) { System.out.println( "Exception: " + e2.getMessage()); } }
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- drago_cyber
- ベストアンサー率26% (5/19)
phpMyAdminを使ってたら。データベースを作成するときに照合順序とかで、utf8に設定できたと思います。それで、直った記憶があります。間違ってたらごめんなさい。