2017-02-14 2 views
-1

In meinem Programm gibt der Benutzer einen Benutzernamen und ein Passwort ein, das sich bereits in meiner SQL-Datenbank befindet und überprüft die Datenbank, um sicherzustellen, dass der Benutzername und das Passwort korrekt sind. Wenn ich jedoch versuche, Daten einzugeben und auf den Login-Button zu drücken, bekomme ich einen Argumenttyp-Mismatch-Fehler. Ich habe es bereits bekommen, Daten mit einem ähnlichen Layout zur Datenbank hinzuzufügen. Hier ist mein Code:(Java) (SQL) Ich versuche, eine Benutzereingabe für meine Datenbank zu überprüfen, um mich anzumelden, aber ich bekomme und argumentieren Typ Mismatch-Fehler?

Datenbankverbindungsklasse:

public class DataBaseConnect { 

    public static Connection getConnection() throws Exception{ 
     try{ 
      //get connection to database 
      String url = "jdbc:mysql://localhost:3306/csgoopenerdatabase?autoReconnect=true&useSSL=false"; 
      String user = "root"; 
      String password = "hockey33"; 
      Connection con = DriverManager.getConnection(url,user,password); 
      System.out.println("Connected to database!"); 
      //execute sql query 
      //process result set 
      return con; 
     }catch(Exception e){ 
      System.out.println(e); 
     } 
     return null; 
    } 
} 

Controller-Klasse:

public class LoginController implements Initializable { 

     @FXML 
     protected static TextField UsernameFieldL; 

     @FXML 
     protected static PasswordField PasswordFieldL; 

     @FXML 
     private void handleLoginBack(MouseEvent event) throws IOException{ 
      Parent handleInventoryBackParent = FXMLLoader.load(getClass().getResource("LoginCreateBuffer.fxml")); 
      Scene OPBackScene = new Scene(handleInventoryBackParent); 
      Stage handleInventoryBackStage = (Stage) ((Node) event.getSource()).getScene().getWindow(); 
      handleInventoryBackStage.setScene(OPBackScene); 
      handleInventoryBackStage.show(); 
     } 

     @FXML 
     private void handleLoginContinue(MouseEvent event) throws IOException, Exception{ 
      CheckDB(); 
     } 

     public static void CheckDB() throws Exception{    
      try{ 
       //get connection to database 
       Connection conn = DataBaseConnect.getConnection(); 
       //create a statement 
       PreparedStatement checkInfo = conn.prepareStatement("SELECT * FROM userinfo WHERE Username='"+UsernameFieldL.getText()+"' AND '"+PasswordFieldL.getText()+"'"); 
       //process result set 
       checkInfo.executeQuery(); 
       System.out.println("complete"); 
      } 
      catch(Exception e){ 
       e.printStackTrace(); 
      }    
     } 
    @Override 
    public void initialize(URL url, ResourceBundle rb) { 
     // TODO 
    }  

} 

ERROR:

java.lang.IllegalArgumentException: argument type mismatch 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:606) 
    at sun.reflect.misc.Trampoline.invoke(MethodUtil.java:75) 
    at sun.reflect.GeneratedMethodAccessor1.invoke(Unknown Source) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:606) 
    at sun.reflect.misc.MethodUtil.invoke(MethodUtil.java:279) 
    at javafx.fxml.FXMLLoader$ControllerMethodEventHandler.handle(FXMLLoader.java:1451) 
    at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:69) 
    at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:217) 
    at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:170) 
    at com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:38) 
    at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:37) 
    at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:92) 
    at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:35) 
    at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:92) 
    at com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:53) 
    at com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:28) 
    at javafx.event.Event.fireEvent(Event.java:171) 
    at javafx.scene.Node.fireEvent(Node.java:6866) 
    at javafx.scene.control.Button.fire(Button.java:179) 
    at com.sun.javafx.scene.control.behavior.ButtonBehavior.mouseReleased(ButtonBehavior.java:193) 
    at com.sun.javafx.scene.control.skin.SkinBase$4.handle(SkinBase.java:336) 
    at com.sun.javafx.scene.control.skin.SkinBase$4.handle(SkinBase.java:329) 
    at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:64) 
    at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:217) 
    at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:170) 
    at com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:38) 
    at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:37) 
    at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:92) 
    at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:35) 
    at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:92) 
    at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:35) 
    at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:92) 
    at com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:53) 
    at com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:33) 
    at javafx.event.Event.fireEvent(Event.java:171) 
    at javafx.scene.Scene$MouseHandler.process(Scene.java:3369) 
    at javafx.scene.Scene$MouseHandler.process(Scene.java:3209) 
    at javafx.scene.Scene$MouseHandler.access$1900(Scene.java:3164) 
    at javafx.scene.Scene.impl_processMouseEvent(Scene.java:1582) 
    at javafx.scene.Scene$ScenePeerListener.mouseEvent(Scene.java:2267) 
    at com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:250) 
    at com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:173) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at com.sun.javafx.tk.quantum.GlassViewEventHandler.handleMouseEvent(GlassViewEventHandler.java:292) 
    at com.sun.glass.ui.View.handleMouseEvent(View.java:530) 
    at com.sun.glass.ui.View.notifyMouse(View.java:924) 
    at com.sun.glass.ui.win.WinApplication._runLoop(Native Method) 
    at com.sun.glass.ui.win.WinApplication.access$100(WinApplication.java:17) 
    at com.sun.glass.ui.win.WinApplication$3$1.run(WinApplication.java:67) 
    at java.lang.Thread.run(Thread.java:745) 
Exception in thread "JavaFX Application Thread" 
+1

Zum Beispiel könnten Sie uns die genaue Fehlermeldung, die Sie bekommen, und die Codezeile, die es erzeugt ... –

+0

Ich habe den Fehler für Sie hinzugefügt. – Tresk33

+0

Wild rate: Ich denke, handleLoginBack (MouseEvent event) und handleLoginContinue (MouseEvent event) sind Tasten, die mit der Maus gedrückt werden. In diesem Fall sollten Sie MouseEvent in ActionEvent ändern. – Sedrick

Antwort

1

Ich gehe hier auf ein Bein und werde meine Antwort löschen, wenn ich falsch liege, aber ich vermute, dass Ihre Ereignisse Tasten drücken. Sie sollten also in Ihrem Code MouseEvent zu ActionEvent ändern.

+0

Verdammt, Sie sind so richtig, ich verwende normalerweise eine Bildansicht, aber ich war nur das Testen mit einer Taste. Ich habe diesen Code stundenlang geändert. Guter Fang, danke! – Tresk33

2

Sie haben ein zusätzliches Angebot am Ende, und auch fehlt Password=:

PreparedStatement checkInfo = conn.prepareStatement("SELECT * FROM userinfo WHERE Username='"+UsernameFieldL.getText()+"' AND Password= + '"+PasswordFieldL.getText()+"'"); 
+1

Oh guter Fang, ich bin gerade in der Klasse, aber ich werde das überprüfen, wenn ich zurückkomme. Vielen Dank! – Tresk33

+0

Hmm es scheint immer noch den gleichen Fehler auszugeben, irgendwelche anderen Ideen? – Tresk33

+0

@ Tresk33 Auch bemerkt, dass Sie vermissen 'Passwort =' – Caner

Verwandte Themen