Java与SQL登录相关

标签 java sql-server

当我登录时,一切都很完美。但是当我输入一个不存在的帐户时,消息对话框会根据数据库中的帐户数量循环显示。我相信这是因为我使用了 while(rss.next()) 。 这是我的代码:

try {
    if(e.getSource()==loginButton){
        int count = 1;
        conn=DriverManager.getConnection("jdbc:sqlserver://localhost:1433;databaseName=login_DB;integratedSecurity=true");
        st=conn.createStatement();
        rss=st.executeQuery("select * from tblLogin");
        while(rss.next()){
            String user = rss.getString(1);
            String pass = rss.getString(2);
            if(usernameTF.getText().equals(user)&&passwordTF.getText().equals(pass)){
                JOptionPane.showMessageDialog(null,"YEAAAA");
            }//if success

            else {
                JOptionPane.showMessageDialog(null,"Account doesn't exist! Please try again.");
            }
        }//while
    }//getsource loginButton

最佳答案

做这样的事情..

int flag = 0;
if(usernameTF.getText().equals(user) && passwordTF.getText().equals(pass))
{
    flag=1; // if found then, value change to 1 otherwise it will be 0
}

//Now, put below condition after while loop
if (flag==1) {
    JOptionPane.showMessageDialog(null,"YEAAAA");
}
else {
    JOptionPane.showMessageDialog(null,"Account doesn't exist! Please try again.");                
}

正如 @Thilo 建议的那样,您可以在 SELECT 查询中使用 WHERE 子句。

关于Java与SQL登录相关,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30438938/

相关文章:

java - 使用 Spring 登录 Mongodb

"main"线程的 Java 执行器

sql - 无法使用 Azure 数据库创建外部源

sql - 当 A & B 已经存在时,防止在 SQL 中输入 B & A

java.lang.OutOfMemoryError : GC overhead limit exceeded on WSO2 MB 错误

java - 滑动时刷新 Android Viewpager fragment

sql-server - 通过Delphi传递SQL Server存储过程参数名称

sql - 如何从初始大表创建星型模式?

java - hackerrank 中的重复字符串问题获取时间限制问题

sql-server - 将日期字段设置为空