2014-12-18 5 views
0

Я пытаюсь соединить проект Neteans Java с базой данных Mysql и я не могу установить соединение и я не знаю, что может пойти неправильно кодConnect Java с Mysql

Мои Java:

private void setupLoginEventListener() { 
     loginBtn.addActionListener(new ActionListener() { 
      @Override 
      public void actionPerformed(ActionEvent e) { 
       rightFirstText = userName.getText(); 
       rightText = password.getPassword(); 
       if (rightFirstText.isEmpty() && rightText.length == 0) { 
        JOptionPane.showMessageDialog(JavaApplication6.this, "All fields are required", "Error", JOptionPane.ERROR_MESSAGE); 
       } else if (rightText.length == 0) { 
        JOptionPane.showMessageDialog(JavaApplication6.this, "Password is required", "Error", JOptionPane.ERROR_MESSAGE); 
       } else { 

        try { 
         conn = getDBConnection(); 
         pst = conn.prepareStatement("select * from pdie where username =? and password=?"); 
         pst.setString(1, rightFirstText); 
         pst.setString(2, new String(rightText)); 
         rs = pst.executeQuery(); 
         while (rs.next()) { 
          JOptionPane.showMessageDialog(JavaApplication6.this, "Login Successfull"); 
         } 
        } catch (SQLException ex) { 
         JOptionPane.showMessageDialog(JavaApplication6.this, "Login Failed"); 
        } 
       } 
      } 
     }); 
    } 

    public Connection getDBConnection() { 
     Connection con = null; 
     String url = "jdbc:mysql://localhost:3536/"; 
     String dbName = "projectdb"; 
     String driver = "com.mysql.jdbc.Driver"; 
     String connectUserName = "root"; 
     String connectPassword = ""; 
     try { 
      Class.forName(driver); 
      con = DriverManager.getConnection(url + dbName, connectUserName, connectPassword); 
      System.out.println("CONNECTION ESTABLISHED."); 
     } catch (ClassNotFoundException | SQLException e) { 
      System.out.println("CONNECTION COULD NOT BE ESTABLISHED."); 
     } 
     return con; 
    } 

есть идеи?

это дает мне ошибку для исключения нулевого указателя в этой строке

pst = conn.prepareStatement("select * from pdie where username =? and password=?"); 
+1

У вас есть установленный драйвер? –

+0

Скорее всего, 'getDBConnection' вернул' null', потому что было обнаружено исключение. Вместо того, чтобы печатать сообщение «ПОДКЛЮЧЕНИЕ НЕ МОЖЕТ БЫТЬ УСТАНОВЛЕНА», напечатайте сообщение об ошибке 'e.getMessage()', которое должно сообщить вам, что пошло не так. – rgettman

+2

Когда вы получаете исключение: 1. Не просто печатайте сообщение об ошибке своего собственного проекта. Распечатайте исключение. В противном случае отладка станет простой гадательной игрой. 2. Не просто продолжайте потом, как будто этого не произошло. Код, который зависит от успеха кода в блоке try, должен находиться внутри блока try. В этом случае вы не должны улавливать эти исключения внутри этого метода. – EJP

ответ

0

типа эти линии

 st=con.createStatement(); 
     String sql="SELECT * FROM TAB"; 
     rs=st.executeQuery(sql); 

и попытаться напечатать поле; быстро протестировать, если проблема в вашем готовом заявлении, но, вероятно, она находится в вашем объекте conn.

+0

не забудьте объявить ст. Как заявление –

+0

спасибо большое человек –

+0

Проблема в подготовленном заявлении не вызывает NPE. – EJP