J'essaye de former une simple base de données de connexion avec SQL (mySQL workbench) et Java (Eclipse). Je ne suis pas sûr de savoir comment tester l'entrée de chaîne (JTextField et JPasswordField) par rapport à la base de données dans SQL même sur d'autres chaînes.Comment tester l'entrée d'un utilisateur à partir d'un JPanel?
Je voudrais que Java imprime une instruction si les informations de connexion sont égales aux chaînes spécifiées. Voici mon code actuel:
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);
}
}
J'ai essayé d'obtenir le texte dans chaque userText/passwordText en utilisant les méthodes .getText() et .getSelectedText().
Et où êtes-vous exactement? – GhostCat
@GhostCat J'étais bloqué sur comment utiliser le bouton pour appeler une classe qui vérifierait le nom d'utilisateur et mot de passe contre ceux dans les bases de données SQL. –