代码:import java.sql.*;
public class conn
{
public static void main(String arg[])
{
try 
{ Class.forName("org.gjt.mm.mysql.Driver"); Connection con=DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/first1","root",""); Statement stmt = con.createStatement(); String sql = "SELECT * FROM first2"; ResultSet rs = stmt.executeQuery( sql );

String rs1;

while(rs.next())
{
for(int i=1;i<=3;i++)
{        
     rs1 = rs.getString(i);
     
     System.out.print(rs1 + "\t");
}
System.out.println();
}         rs.close();
        stmt.close();
        con.close(); }catch(ClassNotFoundException e)
{
    System.out.println("错误:" + e);
}
catch(SQLException e)
{
    System.out.println("错误:" + e);
}
}
}
结果:F:\code\java\mysql>java conn
1       ?       ??
2       ??      ????
3       ??      ????

解决方案 »

  1.   

    补充一下:first2表为:
    id int(4)   
    name varchar(10) gbk_chinese_ci                   
    pwd varchar(10) gbk_chinese_ci 
      

  2.   

    Connection con=DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/first1","root","");这后面好像还要加点东西的好像是什么
    好像是说加个什么编码格式什么什么的
      

  3.   

    试试
    jdbc:mysql://127.0.0.1:3306/first1?useUnicode=true&characterEncoding=GBK
      

  4.   

    还是不行啊。
    我换个mysql看看吧。
    谢谢。
      

  5.   

    这个问题搞懂了原理就比较简单,没搞那是相当的惨,只能靠碰!
    首先得知道在数据库中存的是什么编码的字符,如果建字段没选字符集就用jdbc:mysql://127.0.0.1:3306/first1?useUnicode=true&characterEncoding=ISO8859-1读写,这样读出来的字符就ISO8859-1编码 public static String iso2Gb(String Str)
    {
    String str = null;
    try{
    str = new String(Str.getBytes("8859_1"),"GBK");
    }catch(Exception e){}
    return str;
    }
      

  6.   

    我找到原因了,是mysql驱动的事,换一个区动就好了。把mm.mysql-2.0.4-bin.jar换成mysql-connector-java-3.1.13-bin.jar就搞定了。