while (rs.next()) {
if (name.equals(rs.getString("user_name"))
&& password.equals(rs.getString("user_password"))) {
System.out.println("登录成功");
} else {
System.out.println("请输入正确的用户名和密码");
}
}现在运行的话就不管是否匹配成功,全部的信息都打印出来。
我现在只想提示一次即对比成功则“登录成功”,对比不成功的话也只提示一次“请输入正确的用户名和密码”,这该怎么办呢。
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.FileInputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JTextField;public class LoginFrame { private JFrame jf = new JFrame("Login");
private JTextField userField = new JTextField(20);
private JTextField passField = new JTextField(20);
private JButton loginButton = new JButton("Login"); public void init() throws Exception { loginButton.addActionListener(new ActionListener() { @Override
public void actionPerformed(ActionEvent e) {
try {
if (validate(userField.getText(), passField.getText())) {
JOptionPane.showMessageDialog(jf, "login success");
} else {
JOptionPane.showMessageDialog(jf, "login failure");
}
} catch (Exception e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}// TODO Auto-generated method stub }
}); jf.add(userField, BorderLayout.NORTH);
jf.add(passField);
jf.add(loginButton, BorderLayout.SOUTH);
jf.pack();
jf.setVisible(true);
jf.setLocation(500, 250);
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } public static void main(String[] args) throws Exception {
new LoginFrame().init();
} public boolean validate(String userPass, String userName) throws Exception {
Class.forName("com.mysql.jdbc.Driver");
try (Connection conn = DriverManager
.getConnection("jdbc:mysql://localhost:3306/database_name",
"root", "password");
PreparedStatement ps = conn
.prepareStatement("select *from jdbc_test where jdbc_name=? and jdbc_id=?")) {
ps.setString(1, userPass);
ps.setString(2, userName);
try (ResultSet rs = ps.executeQuery()) { if (rs.next()) {
return true;
} } catch (Exception e) {
e.printStackTrace();
} return false;
}
}
}