Ich versuche, eine einfache Login-Datenbank mit SQL (mySQL-Workbench) und Java (Eclipse) zu bilden. Ich bin mir nicht sicher, wie man die Zeichenfolgeneingabe (JTextField und JPasswordField) gegen die Datenbank in SQL sogar gegen irgendwelche anderen Zeichenketten prüft.Wie kann man Benutzereingaben von einem JPanel testen?
Ich möchte, dass Java eine Anweisung ausgibt, wenn die Anmeldedaten den angegebenen Zeichenfolgen entsprechen. Hier ist meine aktuellen Code:
import javax.swing.*;
import java.sql.*;
public class Hello1 extends JFrame {
private static final long serialVersionUID = 1487932324102279819L;
public static void main(String[] args) {
JFrame frame = new JFrame("Frame Demo");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(350,200);
JPanel panel = new JPanel();
frame.add(panel);
placeComponents(panel);
frame.setVisible(true);
String username0 = "java";
String password = "password";
Statement stmt = null;
try{
String url = "jdbc:mysql://localhost:3306/javabase?useSSL=false";
Connection connection = DriverManager.getConnection(url, username0, password);
stmt = connection.createStatement();
ResultSet rs;
rs = stmt.executeQuery("SELECT * from userids ");
while(rs.next()) {
String user = rs.getString("username");
String pass = rs.getString("paswrd");
System.out.println(user);
System.out.println(pass);
}
connection.close();
}
catch (Exception e) {
System.err.println("Got an exception! ");
System.err.println(e.getMessage());
}
}
private static void placeComponents(JPanel panel) {
panel.setLayout(null);
JLabel userLabel = new JLabel("Username");
userLabel.setBounds(10,20,80,25);
panel.add(userLabel);
JTextField userText = new JTextField(20);
userText.setBounds(100, 20, 165, 25);
panel.add(userText);
String user = userText.getText();
JLabel passwordLabel = new JLabel("Password");
passwordLabel.setBounds(10,50,80,25);
panel.add(passwordLabel);
JPasswordField passwordText = new JPasswordField(20);
passwordText.setBounds(100,50,165,25);
panel.add(passwordText);
String pass = passwordText.getSelectedText();
if(user.equals('b') && pass.equals('t')){
System.out.println("Correct Login");
}
System.out.println(pass);
JButton loginB = new JButton("Login");
loginB.setBounds(10, 80, 80, 25);
panel.add(loginB);
}
}
Ich habe versucht, immer den Text in jedem Usertext/passwordText durch die .getText mit() und .getSelectedText() Methoden.
Und wo genau stecken Sie fest? – GhostCat
@GhostCat Ich war fest auf, wie man mit der Taste eine Klasse aufrufen, die den Benutzernamen und das Passwort gegen Einsen in den SQL-Datenbanken überprüfen würde. –