安装后修改密码为:123456,用户名为:root。连接数据库代码:import java.sql.*;
public class ConnectionProvider{
  private  String JDBC_DRIVER;
  private  String DB_URL;
  private  String DB_USER;
  private  String DB_PASSWORD;  public ConnectionProvider() {
    JDBC_DRIVER=PropertyReader.get("JDBC_DRIVER");
    DB_URL=PropertyReader.get("DB_URL");
    DB_USER=PropertyReader.get("DB_USER");
    DB_PASSWORD=PropertyReader.get("DB_PASSWORD");
    try{
      Class jdbcDriver=Class.forName(JDBC_DRIVER);
      java.sql.DriverManager.registerDriver((Driver)jdbcDriver.newInstance());
    }catch(Exception e){e.printStackTrace();}
  }  public Connection getConnection()throws SQLException{
      Connection con=java.sql.DriverManager.getConnection(DB_URL,DB_USER,DB_PASSWORD);
      return con;
  }
}
import java.util.*;
import java.io.*;public class PropertyReader {
  static private Properties ps;  static{
    ps=new Properties();
    try{
      InputStream in=PropertyReader.class.getResourceAsStream("db.txt");
      ps.load(in);
      in.close();
    }catch(Exception e){e.printStackTrace();}
  }  public static String get(String key){
     return (String)ps.get(key);
  }
}db.txt 文件如下:
JDBC_DRIVER = com.mysql.jdbc.Driver
DB_URL = jdbc:mysql://localhost:3306/STOREDB?useUnicode=true&characterEncoding=GB2312
DB_USER = root
DB_PASSWORD =123456 Exception in thread "main" java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:946)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2870)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:812)
at com.mysql.jdbc.MysqlIO.secureAuth411(MysqlIO.java:3269)
at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1182)
at com.mysql.jdbc.Connection.createNewIO(Connection.java:2670)
at com.mysql.jdbc.Connection.<init>(Connection.java:1531)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:266)
at java.sql.DriverManager.getConnection(DriverManager.java:582)
at java.sql.DriverManager.getConnection(DriverManager.java:185)
at sql.ConnectionProvider.getConnection(ConnectionProvider.java:22)
at sql.DBTester2.addCustomer(DBTester2.java:13)
at sql.DBTester2.main(DBTester2.java:87)

解决方案 »

  1.   

    Connection con=java.sql.DriverManager.getConnection(DB_URL,DB_USER,DB_PASSWORD);断点调试中看一下 这三个变量的内容是什么。 特别是有无多余的空格。
      

  2.   

    用客户端试试是不是mysql的问题
      

  3.   


    刚刚是密码后面多了个空格
    我执行下面代码,报如下错误,请指点。Exception in thread "main" java.sql.SQLException: Incorrect string value: '\xD0\xA1\xCD\xF5' for column 'NAME' at row 1
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:946)
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2870)
    at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1573)
    at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1665)
    at com.mysql.jdbc.Connection.execSQL(Connection.java:3170)
    at com.mysql.jdbc.Statement.executeUpdate(Statement.java:1316)
    at com.mysql.jdbc.Statement.executeUpdate(Statement.java:1235)
    at sql.DBTester1.main(DBTester1.java:23)
    import java.sql.*;
    public class DBTester1{
      public static void main(String args[])throws Exception{
        Connection con;
        Statement stmt;
        ResultSet rs;
        //加载驱动器,下面的代码为加载MySQL驱动器
        Class.forName("com.mysql.jdbc.Driver");
        //注册MySQL驱动器
        DriverManager.registerDriver(new com.mysql.jdbc.Driver());
        //连接到数据库的URL
        String dbUrl = "jdbc:mysql://localhost:3306/STOREDB?useUnicode=true&characterEncoding=GB2312";
        String dbUser="root";
        String dbPwd="123456";
        //建立数据库连接
        con = java.sql.DriverManager.getConnection(dbUrl,dbUser,dbPwd);
        //创建一个Statement对象
        stmt = con.createStatement();
        
        //增加新记录
    stmt.executeUpdate("insert into CUSTOMERS (NAME,AGE,ADDRESS) " 
    +"VALUES ('小王',20,'上海')");    //输出查询结果
        while (rs.next()){
          long id = rs.getLong(1);
          String name = rs.getString(2);
          int age = rs.getInt(3);
          String address = rs.getString(4);
            
          //打印所显示的数据
          System.out.println("id="+id+",name="+name+",age="+age+",address="+address);
        }
     
        //删除新增加的记录
        stmt.executeUpdate("delete from CUSTOMERS where name='小王'");    //释放相关资源
        rs.close();
        stmt.close();
        con.close();
      }
    }
      

  4.   

    字符集设置的问题。http://blog.csdn.net/ACMAIN_CHM/archive/2009/05/12/4174186.aspx
    MySQL 中文显示乱码
      

  5.   


    谢谢,问题已经解决,方法如下1: 修改my.int文件 default-character-set=gb2312
    2:建的表后面加上engine=MyISAM character set gbk collate gbk_chinese_ci;
    3:数据库url后面加上?useUnicode=true&characterEncoding=GBK