为什么我java连接sql时运行成功 可在登录界面输入正确的用户名和密码总是显示错误???

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();
}
}

if(rs.next()){
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();
}追问

是和我输入的是一样的。这个我试过就不想不明白为什么会不成立,哎,初学伤不起

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-12-16
你的rs.getString(2)输出一下看是不是你想要的。追问

rs.getString(2) 的到的值是我想要的。但是登录时还是显示密码错误

追答

结果是不是前面有空格,或者后面有空格。你仔细检查一下,如果有空格也不行的。必须trim()一下。

追问

谢谢,谢谢。rs.getString(2)这个没有去空格,我的数据库定义的是定长的。后面加了个trim就好了

追答

别忘了给分呀。哈哈哈。

第2个回答  2013-12-16
知道会不会失业呢?还能做下去吗知道会不会失业呢?还能做下去吗知道会不会失业呢?还能做下去吗知道会不会失业呢?还能做下去吗知道会不会失业呢?还能做下去吗知道会不会失业呢?还能做下去吗知道会不会失业呢?还能做下去吗知道会不会失业呢?还能做下去吗

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网