用java和mysql写的一个注册与登录界面,如何在输入用户名及密码时查找与用户名匹配的密码是否与所填密码

一致,具体代码如下
JButton jb52 = new JButton("登录");
jb52.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
try {
String a = jtf1.getText();
String b = jtf2.getText();
System.out.println(a);
Class.forName(driver);
Connection conn = DriverManager.getConnection(url,
user, password);
Statement stat = conn.createStatement();
ResultSet count1 = stat.executeQuery("select username from mytable where username='"+a+"'" );
count1.next();
System.out.println("111111111111111111111111111111111111111111111111");
if(count1.getString("username")!=null){

System.out.println(count1.getString(1));
}
ResultSet count2 = stat.executeQuery("select password from mytable where password='"+b+"'" );
count2.next();
if(count2.getString("username")!=null){

System.out.println(count2.getString(1));
}
这样只能检测是否有某个密码,不能检测与某个用户名匹配的密码,求大神指教啊!!!!

在sql的where条件里加上用户名就可以了,如:select username, password from mytable where username = '用户名' and password = '密码';这样就能检测了!追问

不行啊,它只能检测出username来,password不管是什么,都能显示出来

追答

你这样写:

JButton jb52 = new JButton("登录");
jb52.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
try {
String a = jtf1.getText();
String b = jtf2.getText();
System.out.println(a);
Class.forName(driver);
Connection conn = DriverManager.getConnection(url,
user, password);
Statement stat = conn.createStatement();
ResultSet count1 = stat.executeQuery("select username from mytable where username='"+a+"'" );
//如果用户名存在,验证该用户名的密码
if(count1.next()){
// 取出该用户名对应的密码
ResultSet count2 = stat.executeQuery ("select password from mytable where username='"+a+"'" );

if(count2.next()){
//如果该用户对应的密码与输入的密码相等,说明验证通过
if(count2.getString("password").equels(b)){

System.out.println(count2.getString(1));
}

}

}

温馨提示:内容为网友见解,仅供参考
第1个回答  2013-04-22
count1.getString("username").equals(b)
第2个回答  2013-04-22
select password from mytable where username='"+a+"'"
相似回答