public void actionPerformed(ActionEvent e) {
if(e.getSource() == bt1){
conn = DataBase.getConn();
String userName = tName.getText().trim();
String userPassword = new String(pwd.getPassword()).trim();
System.out.println(userPassword);
String sql = "select * from zhuce where name = ?";
if(userName.length() == 0 || userPassword.length() == 0){
JOptionPane.showMessageDialog(this, "用户名和密码不能为空!");
tName.requestFocus();
}else{
try{
ps = conn.prepareStatement(sql);
ps.setString(1, userName);
rs = ps.executeQuery();
System.out.println();
if(rs.next()){
if(rs.getString(2).equals(userPassword)){
JOptionPane.showMessageDialog(this, "欢迎进入本系统!");
dispose();
JFrame frame = new MainFrame(userName);
}else{
JOptionPane.showMessageDialog(this, "密码不正确!");
System.out.println();
pwd.setText(null);
pwd.requestFocus();
}
}else{
JOptionPane.showMessageDialog(this, "用户名不存在!");
tName.setText(null);
pwd.setText(null);
tName.requestFocus();
}
}catch(Exception e1){
e1.printStackTrace();
}
}
}
if(e.getSource() == bt2){
tName.setText(null);
pwd.setText(null);
tName.requestFocus();
}
}
System.out.println(rs.getString(2));//把这个东西输出来看看和你输入的一样吗?
if(rs.getString(2).equals(userPassword)){
JOptionPane.showMessageDialog(this, "欢迎进入本系统!");
dispose();
JFrame frame = new MainFrame(userName);
}else{
JOptionPane.showMessageDialog(this, "密码不正确!");
System.out.println();
pwd.setText(null);
pwd.requestFocus();
}追问
是和我输入的是一样的。这个我试过就不想不明白为什么会不成立,哎,初学伤不起
rs.getString(2) 的到的值是我想要的。但是登录时还是显示密码错误
追答结果是不是前面有空格,或者后面有空格。你仔细检查一下,如果有空格也不行的。必须trim()一下。
追问谢谢,谢谢。rs.getString(2)这个没有去空格,我的数据库定义的是定长的。后面加了个trim就好了
追答别忘了给分呀。哈哈哈。