簡體   English   中英

Java 代碼中的錯誤:參數索引超出范圍(1 > 參數數量,為 0)

[英]Error in Java code :Parameter index out of range (1 > number of parameters, which is 0)

如果數據庫中存在該行,我正在嘗試驗證用戶名和密碼。 但我得到的參數索引超出范圍(1 > 參數數量,即 0)。 請幫忙

Scanner in = new Scanner(System.in);
String password = in .next();
String username = in .next();

PreparedStatement ps = 
                connect.prepareStatement
               ( "select  LastName,BirthDate from employees where LastName= '" + username + "'  and BirthDate = '" + password + "'"  );


            ps.setString (1, username);
            ps.setString (2, password);
            ResultSet rs = ps.executeQuery();

            if (rs.next()) {

                 System.out.println("login completed");
            } else {
                // Quest not completed yet
                 System.out.println("login failed");

                }

您將字符串連接與設置准備好的語句參數混合在一起。 您應該只使用兩者之一,最好是后者。 您的代碼應如下所示:

PreparedStatement ps = connect.prepareStatement ( 
    "select LastName,BirthDate from employees where LastName=? and BirthDate=?"
);
ps.setString (1, username);
ps.setString (2, password);
ResultSet rs = ps.executeQuery();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM