mysql にデータを挿入するときに文字化けするデータと疑問符に対する Java の解決策: (推奨: java ビデオ チュートリアル )
Java 挿入時の疑問符コードが文字化けする問題については、まずデータベースのエンコード形式が正しいかどうかを確認します。MySQL データベースにステートメントを挿入して、中国語が正常に表示できるかどうかを確認できます。正常に表示できれば、それは意味します。 Java がデータベースに接続する場合、データベースはエンコードなしでアクセスされます。
解決策
static final String JDBC_DRIVER = "com.mysql.jdbc.Driver"; static final String DB_URL = "jdbc:mysql://localhost:3306/dbname?characterEncoding=UTF-8";
完全なエンコード
package com.music.test; import java.sql.*; public class DBMySQL { // JDBC 驱动名及数据库 URL static final String JDBC_DRIVER = "com.mysql.jdbc.Driver"; static final String DB_URL = "jdbc:mysql://localhost:3306/dbname?characterEncoding=UTF-8"; // 数据库的用户名与密码,需要根据自己的设置 static final String USER = "***"; static final String PASS = "***"; private Connection conn = null; public DBMySQL() { try { // 注册 JDBC 驱动 Class.forName("com.mysql.jdbc.Driver"); // 打开链接 System.out.println("连接数据库..."); conn = DriverManager.getConnection(DB_URL, USER, PASS); } catch (SQLException se) { // 处理 JDBC 错误 se.printStackTrace(); } catch (Exception e) { // 处理 Class.forName 错误 e.printStackTrace(); } } public int insert(Album album) { int i = 0; String sql = "insert into album (album_name,singer,album_url) values(?,?,?)"; try { PreparedStatement preStmt = conn.prepareStatement(sql); preStmt.setString(1, album.getAlbum_name()); preStmt.setString(2, album.getSinger());// 或者:preStmt.setInt(1,值); preStmt.setString(3, album.getAlbum_url());// 或者:preStmt.setInt(1,值); i = preStmt.executeUpdate(); } catch (SQLException e) { e.printStackTrace(); } return i;// 返回影响的行数,1为执行成功 } }
データベース名の後に ?characterEncoding=UTF-8 を追加すると、データを正常に挿入できます。
Java についてさらに詳しく知りたい場合は、Java 基本チュートリアル 列に注目してください。
以上がJavaがmysqlにデータを挿入するときに文字化けするコードの解決策の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。