这是我的错误。我使用了正确的密码,因为这是我启动MySQL时输入的密码。
DefaultTableModel dtm=(DefaultTableModel) jTable1.getModel();
dtm.setRowCount(0);
try{
Class.forName("java.sql.Driver");
Connection c=DriverManager.getConnection("jdbc:mysql://localhost/shashvat","root","1234");
Statement s=c.createStatement();
ResultSet r=s.executeQuery("select * from phasetests;");
while(r.next()){
Object arr[]={r.getString(1),r.getString(2),r.getString(3),r.getString(4)};
dtm.addRow(arr);
}
}catch(Exception e){
System.out.println(e.getMessage());
}
异常消息:
Access denied for user 'root'@'localhost' (using password: YES)
我也试过这个:https://stackoverflow.com/a/17908407/5036731
问题仍然存在。请帮助。
编辑:你的代码应该是这样的。
DefaultTableModel dtm=(DefaultTableModel) jTable1.getModel();
dtm.setRowCount(0);
try{
//Class.forName("java.sql.Driver"); This is wrong
Class.forName("com.mysql.jdbc.Driver"); // Declare it like this..
Connection c=DriverManager.getConnection("jdbc:mysql://localhost:3306/shashvat","root","1234"); // port number was missing
Statement s=c.createStatement();
ResultSet r=s.executeQuery("select * from phasetests;");
while(r.next()){
Object arr[]={r.getString(1),r.getString(2),r.getString(3),r.getString(4)};
dtm.addRow(arr);
}
}catch(Exception e){
System.out.println(e.getMessage());
}
看到我在这里提到的代码是工作的。我在当地查过了。问题应该与密码或模式访问有关,您可以参考以下内容。root'@'localhost'(使用密码:YES) -没有特权?
如果是权限问题。通过执行以下命令授予root所有权限。
GRANT ALL PRIVILEGES ON shashvat.* TO 'root'@'localhost' IDENTIFIED BY 'root'
ERROR 1045 (28000): Access denied for user 'root'@'localhost'(使用密码:YES)
请使用下面提到的语法
Connection c =DriverManager.getConnection("jdbc:mysql"+"://"+host+":"+port+"/"+db,"root","pass");
只需更正您的驱动程序名称为com.mysql.jdbc.Driver并添加端口为localhost:3306的主机