2017-09-28 142 views
-1

现在我在这里看到了一些这些问题,但我的问题有点不同。我创建了一个创建账户页面和登录页面。我在MYSQL中创建了一个数据库,其中存储了各种用户名和相应的密码。我使用创建帐户页面创建了一个帐户,然后通过登录页面进行了检查,发现它正在工作。但后来我试着编写一个代码,在创建相应帐户后,在MYSQL中自动创建一个表。但我得到了上述错误。我会告诉你我的登录和创建帐户页面。访问在JAVA中拒绝用户'root'@'localhost'(使用密码:YES)

LOGIN: -

import java.awt.*; 

import java.awt.event.*; 

import java.sql.Connection; 

import java.sql.DriverManager; 

import java.sql.ResultSet; 

import java.sql.Statement; 

import javax.swing.*; 

public class Login extends Frame implements ActionListener, WindowListener 

{ 

    Label l1,l2,l3; 

    JTextField t1; 

    JPasswordField p1; 

    JButton b0,b1; 

    String url = "jdbc:mysql://localhost:3306/database1"; 

    String user = "root"; 

    String password = "Newyear2016!"; 

    char[] s2; 

    String s1,s3; 

    Login() 

    { 

     addWindowListener(this); 

     setTitle("Login"); 

     setSize(500,500); 

     setLayout(null); 

     setVisible(true); 

     l3 = new Label("Login"); 

     l3.setBounds(120,50,300,50); 

     add(l3); 

     Font myFont1 = new Font("Helvetica",Font.ITALIC,30); 

     l3.setFont(myFont1); 

     l1 = new Label("User Name: "); 

     l1.setBounds(50,150,100,50); 

     add(l1); 

     l2 = new Label("Password: "); 

     l2.setBounds(50,250,100,50); 

     add(l2); 

     t1 = new JTextField(); 

     p1 = new JPasswordField(); 

     t1.setBounds(170,150,250,50); 

     p1.setBounds(170,250,250,50); 

     add(t1); 

     add(p1); 

     t1.addActionListener(this); 

     p1.addActionListener(this); 

     b0 = new JButton("Login"); 

     b0.setBounds(170,350,100,50); 

     add(b0); 

     b0.addActionListener(this); 

     b1 = new JButton("Go Back"); 

     b1.setBounds(300,350,100,50); 

     add(b1); 

     b1.addActionListener(this); 

    } 

    public void actionPerformed(ActionEvent e) 

    { 

     s1 = t1.getText(); 

     s2 = p1.getPassword(); 

     s3 = new String(s2);   

     Object o = e.getSource(); 

     if(o == b1) 

     { 

      dispose(); 

      Home h = new Home(); 

     } 

     mainLoop: 

     if(o == b0) 

     { 

      try 

      { 

       Connection myConn = 

DriverManager.getConnection(url,user,password); 

       Statement myStmt = myConn.createStatement(); 

       ResultSet myRs = myStmt.executeQuery("select * from login"); 

       while(myRs.next()) 

       { 


if(s1.equals(myRs.getString("usname"))&&s3.equals(myRs.getString("pwd"))) 

        { 

         System.out.println("Username Found"); 

         System.out.println("Password Found"); 

         JOptionPane.showMessageDialog(null,"Login Successful: 

"+s1); 

         break mainLoop; 

        } 



       } 

       JOptionPane.showMessageDialog(null,"Wrong Username/Password"); 



      } 

catch(Exception exc) 

{ 

    exc.printStackTrace(); 

} 
     } 

    } 


    public void windowClosing(WindowEvent e) 

{ 

     dispose(); 

    } 

    public void windowActivated(WindowEvent e) {} 

    public void windowClosed(WindowEvent e) {} 

    public void windowDeactivated(WindowEvent e) {} 

    public void windowDeiconified(WindowEvent e) {} 

    public void windowIconified(WindowEvent e) {} 

    public void windowOpened(WindowEvent e) {} 

} 

请告诉我,我做错了。我检查了我提供了正确的密码。所以这不是问题。

创建帐户: -

import java.awt。*;

import java.awt.event。*;

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.ResultSet;

import java.sql.Statement;

import javax.swing。*;

公共类登录延伸框架实现的ActionListener,的WindowListener

{

Label l1,l2,l3; 

JTextField t1; 

JPasswordField p1; 

JButton b0,b1; 

String url = "jdbc:mysql://localhost:3306/database1"; 

String user = "root"; 

String password = "Newyear2016!"; 

char[] s2; 

String s1,s3; 

Login() 

{ 

    addWindowListener(this); 

    setTitle("Login"); 

    setSize(500,500); 

    setLayout(null); 

    setVisible(true); 

    l3 = new Label("Login"); 

    l3.setBounds(120,50,300,50); 

    add(l3); 

    Font myFont1 = new Font("Helvetica",Font.ITALIC,30); 

    l3.setFont(myFont1); 

    l1 = new Label("User Name: "); 

    l1.setBounds(50,150,100,50); 

    add(l1); 

    l2 = new Label("Password: "); 

    l2.setBounds(50,250,100,50); 

    add(l2); 

    t1 = new JTextField(); 

    p1 = new JPasswordField(); 

    t1.setBounds(170,150,250,50); 

    p1.setBounds(170,250,250,50); 

    add(t1); 

    add(p1); 

    t1.addActionListener(this); 

    p1.addActionListener(this); 

    b0 = new JButton("Login"); 

    b0.setBounds(170,350,100,50); 

    add(b0); 

    b0.addActionListener(this); 

    b1 = new JButton("Go Back"); 

    b1.setBounds(300,350,100,50); 

    add(b1); 

    b1.addActionListener(this); 

} 

public void actionPerformed(ActionEvent e) 

{ 

    s1 = t1.getText(); 

    s2 = p1.getPassword(); 

    s3 = new String(s2);   

    Object o = e.getSource(); 

    if(o == b1) 

    { 

     dispose(); 

     Home h = new Home(); 

    } 

    mainLoop: 

    if(o == b0) 

    { 

     try 

     { 

      Connection myConn = 

的DriverManager.getConnection(URL,用户,密码);

  Statement myStmt = myConn.createStatement(); 

      ResultSet myRs = myStmt.executeQuery("select * from login"); 

      while(myRs.next()) 

      { 

如果(s1.equals(myRs.getString( “usname”))& & s3.equals(myRs.getString( “PWD”)))

   { 

        System.out.println("Username Found"); 

        System.out.println("Password Found"); 

        JOptionPane.showMessageDialog(null,"Login Successful: 

“+ S1);

    break mainLoop; 

       } 


      } 
      JOptionPane.showMessageDialog(null,"Wrong Username/Password"); 



     } 

     catch(Exception exc) 

     { 
      exc.printStackTrace(); 

     } 

    } 

} 



public void windowClosing(WindowEvent e) 

{ 

    dispose(); 

} 

public void windowActivated(WindowEvent e) {} 

public void windowClosed(WindowEvent e) {} 

public void windowDeactivated(WindowEvent e) {} 

public void windowDeiconified(WindowEvent e) {} 

public void windowIconified(WindowEvent e) {} 

public void windowOpened(WindowEvent e) {} 

} #Edit: - ?对不起,我忘了提供创建帐户页面这是问题请问是否通过它

+0

我认为这可以帮助你https://stackoverflow.com/questions/11922323/java-sql-sqlexception-access-denied-for-user-rootlocalhost-using-password –

+0

我认为这能帮助你:https://stackoverflow.com/questions/11922323/java-sql-sqlexception-access-denied-for-user-rootlocalhost-using-password –

回答

0

您的一些代码不在代码块中,因此很难阅读,但您是否加载了驱动程序类?

String url="jdbc:mysql://localhost:3306/database1"; 
String userName="root"; 
String password="Newyear2016!"; 
try { 

    Class.forName("com.mysql.jdbc.Driver").newInstance(); 
    Connection con=DriverManager.getConnection(url,username,password); 
+0

其实我看到这个驱动程序的东西,我写了你写的确切代码在这里,但它给了同样的错误。现在我以前不需要这一行,所以我从来没有写过。 –

相关问题