2014-12-19 3 views
1

안녕하세요 저는 사용자를 데이터베이스에 등록하려는 작은 애플리케이션을 만들고 있습니다. 괜찮아 보이지만 그것은 내가 운전자에게 문제가 있으며 나는 그것을 발견 할 수 없다는 것을 알려준다.Java를 통해 MySQL 데이터베이스에 등록하지 못했습니다.

내 코드 :

private void createEventListenerDBProperties() { 
     dbSubmitBtn.addActionListener(new ActionListener() { 

      @Override 
      public void actionPerformed(ActionEvent e) { 

        if (dbDriverChooser.getSelectedItem().equals("com.mysql.jdbc.Driver")) { 
         driver = (String) dbDriverChooser.getSelectedItem(); 
         port = dbPortField.getText(); 
         host = "jdbc:mysql://" + hostField.getText() + ":" + port + "/"; 
        } else if (dbDriverChooser.getSelectedItem().equals("oracle.jdbc.driver.OracleDriver")) { 
         driver = (String) dbDriverChooser.getSelectedItem(); 
         port = dbPortField.getText(); 
         host = "jdbc:oracle:thin:@" + hostField.getText() + ":" + port + ":"; 
        } else if (dbDriverChooser.getSelectedItem().equals("org.postgresql.Driver")) { 
         driver = (String) dbDriverChooser.getSelectedItem(); 
         port = dbPortField.getText(); 
         host = "jdbc:postgresql://" + hostField.getText() + ":" + port + "/"; 
        } else { 
         driver = (String) dbDriverChooser.getSelectedItem(); 
         host = "jdbc:sqlite:"; 
        } 
        db = dbnameField.getText(); 
        dbuser = dbUsernameField.getText(); 
        dbpassword = new String(dbPasswordField.getPassword()); 
        main.remove(dbProperties); 
        main.add(register); 
        main.revalidate(); 
       } 
     }); 
    } 

내 연결 방법 :

private Connection instanciateDB() { 
     Connection con = null; 
     try { 
      Class.forName(driver).newInstance(); 
      con = DriverManager.getConnection(host + db, dbuser, dbpassword); 
      System.out.println("Connection Established"); 
     } catch (ClassNotFoundException | SQLException | InstantiationException |IllegalAccessException e) { 
      System.out.println("Connection not Established"); 
      JOptionPane.showMessageDialog(MainFrame.this, e.getMessage(), "Error", JOptionPane.ERROR_MESSAGE); 
     } 
     return con; 
    } 

내 등록 방법 :

private void setupRegisterEventListener() { 
     registerBtn.addActionListener((ActionEvent e) -> { 

       try { 
        conn = instanciateDB(); 
        pst = conn.prepareStatement("insert into usersinfo(username, password) values(?,?)"); 
        pst.setString(1, leftFirstText); 
        pst.setString(2, new String(leftSecondText)); 
        int x = pst.executeUpdate(); 
       } catch (SQLException ex) { 
        JOptionPane.showMessageDialog(MainFrame.this, "Registration Failed"); 
        System.out.println(ex.getMessage()); 
       } 
       JOptionPane.showMessageDialog(MainFrame.this, "Registration Successful", "Success", JOptionPane.PLAIN_MESSAGE); 
     }); 
    } 

그리고 그것은 나를 com.mysql.jdbc.Driver 에러 제공하고 내가 왜 instanciateDB에서 잘 모릅니다 방법.

Connection not Established 
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException 
    at ijae4.xdrako00.MainFrame.lambda$setupRegisterEventListener$0(MainFrame.java:126) 
    at ijae4.xdrako00.MainFrame$$Lambda$13/1389133897.actionPerformed(Unknown Source) 
    at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022) 
    at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2346) 
    at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402) 
    at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259) 
    at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252) 
    at java.awt.Component.processMouseEvent(Component.java:6525) 
    at javax.swing.JComponent.processMouseEvent(JComponent.java:3321) 
    at java.awt.Component.processEvent(Component.java:6290) 
    at java.awt.Container.processEvent(Container.java:2234) 
    at java.awt.Component.dispatchEventImpl(Component.java:4881) 
    at java.awt.Container.dispatchEventImpl(Container.java:2292) 
    at java.awt.Component.dispatchEvent(Component.java:4703) 
    at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4898) 
    at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4533) 
    at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4462) 
    at java.awt.Container.dispatchEventImpl(Container.java:2278) 
    at java.awt.Window.dispatchEventImpl(Window.java:2739) 
    at java.awt.Component.dispatchEvent(Component.java:4703) 
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:746) 
    at java.awt.EventQueue.access$400(EventQueue.java:97) 
    at java.awt.EventQueue$3.run(EventQueue.java:697) 
    at java.awt.EventQueue$3.run(EventQueue.java:691) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75) 
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:86) 
    at java.awt.EventQueue$4.run(EventQueue.java:719) 
    at java.awt.EventQueue$4.run(EventQueue.java:717) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75) 
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:716) 
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201) 
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116) 
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105) 
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) 
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93) 
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:82) 

아이디어가 있으십니까?

미리 감사드립니다. 도서관에

+0

'== "..."'[비교하지 않는 문자열에 대한 단계입니다 -> MySQL의 JDBC 드라이버 -> 라이브러리를 추가합니다. 'equals'을 사용하십시오.] (http://stackoverflow.com/questions/513832/how-do-i-compare-strings-in-java) – Pshemo

+0

같은 문제는 ... 저는 드라이버를 설치했지만 왜 그럴지 모릅니다. 그 날 오류 –

+0

준다 dbproperties 패널을 제거하고 나는 등록 패널을 추가하기 때문에 실패했다고 생각합니까? 그 문자열 문자열을 느슨하게 만들지 ?? –

답변

2

마우스 오른쪽 클릭 -`== 이들은`와 넷빈즈 IDE

+1

정확히 무엇이 누락 되었습니까 ... 대단히 감사합니다 –

+2

나는 여자예요. 괜찮습니다 :))) 환영합니다. – SummerCode

관련 문제