java向mysql插入数据出现乱码解决方法
内容摘要
Java 向mysql插入数据乱码出现问号解决方法:(推荐:java视频教程)java向数据库插入数据出现问号的乱码问题,首先确定数据库的编码格式是否正确,可以在mysql的数据库中insert一个语
文章正文
Java 向mysql插入数据乱码出现问号解决方法:(推荐:java视频教程)
java向数据库插入数据出现问号的乱码问题,首先确定数据库的编码格式是否正确,可以在mysql的数据库中insert一个语句看看是不是可以正常显示中文,如果可以正常显示,那么就是java连接数据库的时候,没有带编码访问数据库。
解决方法
1 2 | static final String JDBC_DRIVER = "com.mysql.jdbc.Driver" ; static final String DB_URL = "jdbc:mysql://localhost:3306/dbname?characterEncoding=UTF-8" ; |
完整编码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 | 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基础教程栏目。
代码注释
[!--zhushi--]