密码为SQLServerResultSet:1
我输入password,时。也是按的1:
不知道。为什么总是报错。
有什么原因造的。会是定义的类型有差别吗?
在SQLSERVER 当中 password. 我用是CHAR(10);
在ECLIPSE 当中我用的是。STRING。
JButton b=new JButton();
b.setText("登 录");
b.setBounds(23,77,89,28);
getContentPane().add(b);
b.addActionListener(new ActionListener(){
public void actionPerformed(final ActionEvent arg0){
String user=text1.getText();
String password1=new String(p1.getPassword());
if(user.equals("") || password1.equals("")){
JOptionPane.showMessageDialog(null,"用户名和密码不能为空。");
}
else{
boolean ok=DAO.okUser(user,password1);
if(ok){
new MainFrame().setVisible(true);
loginframe.this.dispose();
}
}
}
});
public static boolean okUser(String user,String password1){
try{
Connection conn=getConn(); // 获得数据库连接
// 创建PreparedStatement对象,并传递SQL语句
PreparedStatement ps=conn.prepareStatement("select password from tb_user where username=?");
ps.setString(1, user); // 为参数赋值
ResultSet rs=ps.executeQuery();
System.out.println("密码为"+rs);
if (rs.next() && rs.getRow()>0){ // 查询到用户信息
String password=rs.getString(1);
if (password.equals(password1)){
return true; // 密码正确返回true
}else{
JOptionPane.showMessageDialog(null, "密码不正确。");
return false; // 密码错误返回false
}
}else{
JOptionPane.showMessageDialog(null, "用户名不存在。");
return false; // 用户不存在返回false
}
}catch(Exception ex){
JOptionPane.showMessageDialog(null, "数据库异常!\n"+ex.getMessage());
return false; // 数据库异常返回false
}