各位仁兄,帮帮忙!
我用下面这个代码向数据库添加信息
package org.bzc.jdbc;import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;public class DoInsert { private Connection conn = null;
private Statement stmt = null;
private String driver = "com.mysql.jdbc.Driver";
private String username = "root";
private String password = "root";
private String sql =
"INSERT INTO student(name,myclass,score) VALUES('陈秀','0801',80)";

public boolean addStudent(){
boolean flag = false;
try {
// step1: 加载数据库厂商提供的驱动程序
Class.forName(driver);
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
// step2: 提供数据库连接的URL
String url = "jdbc:mysql://localhost:3306/test";
try {
//step3: 通过DriverManager 获得数据库的一个连接对象
conn = DriverManager.getConnection(url,username,password);
} catch (SQLException e) {
e.printStackTrace();
}
try {
// step4: 创建 Statement(SQL的执行环境)
stmt = conn.createStatement();
// step5: 执行SQL语句
int row = stmt.executeUpdate(sql);
// step6: 处理结果
if (row == 1) {
flag = true;



} catch (SQLException e) {
e.printStackTrace();
} finally {
// step7: 关闭JDBC的资源
if (null != stmt) {
try { stmt.close();}
catch (SQLException e) {
e.printStackTrace();
}
}
if (null != conn) {
try { conn.close();}
catch (SQLException e) {
e.printStackTrace ();
}
}
}
return flag;
}

public static void main(String[] args) {
DoInsert doinsert = new DoInsert();
boolean flag = doinsert.addStudent();
if (flag) {
System.out.println("添加信息成功!");
}
else {
System.out.println("添加信息失败!");
}
}}
但添加成功后,在数据库里看到那个姓名却显示为三个问号了,为什么呀??怎样解决?

解决方案 »

  1.   

    http://blog.csdn.net/ACMAIN_CHM/archive/2009/05/12/4174186.aspx
    MySQL 中文显示乱码
      

  2.   

    字符集的原因,参考一下上贴中的解决方案。1。 在你的连接URL串中设置char set,这个要看一下手册中的说明
    2。在INSERT之前执行一下 'set names xxxx'  xxx 是你表中对应的字符集。
      

  3.   

    设置URL的时候       jdbc:mysql://localhost:3306/database?useUnicode=true&characterEncoding=UTF8 把字符编码 转换一下 就好了