2016-05-04 9 views
0

Ich habe zahlreiche Erklärungen dazu aber in PHP gesehen. Ich möchte dies in Java mit JavaFX tun, um meine GUI zu unterstützen. Ich schließe meine Methoden für die Anmeldung und für die Anzeige des Benutzernamens auf der Dockingstation ein.Zugriff auf Informationen über bestimmte Benutzer nach der Anmeldung von MySQL in Java

Also lassen Sie uns sagen, dass ich 10 Benutzer in meiner Datenbank und Benutzer login_id = 5 Protokolle habe, das bedeutet, dass ich alle Informationen über ihn an bestimmten Orten (dh. Vorname, Nachname, E-Mail, etc .).

LoginFXMLController

@FXML 
    private boolean loginSuccessful() throws SQLException{ 
     connection = MySQL.Connect(); 
     String sql = "SELECT * FROM login WHERE username = ? and password = ?"; 

     pst = connection.prepareStatement(sql); 
     pst.setString(1, tfUsername.getText()); 
     pst.setString(2, tfPassword.getText()); 
     rs = pst.executeQuery(); 

     return (rs.next()); 
    } 

DockFXMLController

@FXML 
    public void showName() 
    { 
     try { 
// Just getting info from login_id column, and not by specific user, 
// and I'd like to change that 
      String sql = "SELECT * FROM Login WHERE login_id = 1"; 
      pst = connection.prepareStatement(sql); 
      rs = pst.executeQuery(); 
      if(rs.next()) 
      { 
       lblName.setText(rs.getString("first_name") + " " + rs.getString("last_name")); 
      } 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
    } 

Dieser Code über Werke und zeigt, was es soll zeigen - Vornamen aus der ersten Reihe, also habe ich alles richtig initialisiert, dass ich erforderlich.

Antwort

0

Nicht zu wissen, welches Klassenobjekt "PST" tatsächlich ist. Hier ist eine Momentaufnahme von java tutorial about database on java2s.com.

Ich denke, das Problem ist, dass Sie die Methode createStatement() aufrufen sollten.

Ich hoffe, das könnte Ihnen helfen.

import java.sql.Connection; 
import java.sql.DriverManager; 
import java.sql.Statement; 

public class Main { 
    public static void main(String[] argv) throws Exception { 
    String driverName = "com.jnetdirect.jsql.JSQLDriver"; 
    Class.forName(driverName); 

    String serverName = "127.0.0.1"; 
    String portNumber = "1433"; 
    String mydatabase = serverName + ":" + portNumber; 
    String url = "jdbc:JSQLConnect://" + mydatabase; 
    String username = "username"; 
    String password = "password"; 

    Connection connection = DriverManager.getConnection(url, username, password); 
    Statement stmt = connection.createStatement(); 
    String sql = "UPDATE my_table SET col_string='a new string' WHERE col_string = 'a string'"; 
    int updateCount = stmt.executeUpdate(sql); 

    } 
} 
+0

'ResultSet rs' und' PreparedStatement pst' sind Objekte, die ich erstellt habe. Ich bin mir nicht sicher, warum ich meine Tabelle "UPDATE", da ich nur die spezifische ID einer Zeile finden muss und sie nicht aktualisieren muss. – brajevicm