Я пытаюсь понять, почему я не могу искать более одной записи в базе данных с помощью Java. Это приложение Java jsp, но я, кажется, изо всех сил пытаюсь понять, в чем проблема. Я новичок в jsp, но уверен, что все равно
try{
String myDriver = "org.gjt.mm.mysql.Driver";//db driver
String myUrl = database;//connect to db
Class.forName(myDriver);
Connection conn = DriverManager.getConnection(myUrl, user, password);//authenticating on database
String query = "SELECT Cus_ID, Cus_name, Cus_surname, Cus_mail, Cus_Address, Cus_telephone FROM customerdb";//mysql select statement
PreparedStatement sta = conn.prepareStatement(query); //prepared statement
ResultSet rst = sta.executeQuery(query);
while (rst.next())
{
String cusid = rst.getString("Cus_ID"); //variable to retrieve the customer from the database
String cusn = rst.getString("Cus_name");
String cussn = rst.getString("Cus_surname");
String cusm = rst.getString("Cus_mail");
String cusaddr = rst.getString("Cus_Address");
String custel = rst.getString("Cus_telephone");
if (!(customer.equals(cusid))){
request.setAttribute("al", "user not found");
request.getRequestDispatcher("account.jsp").forward(request, response); //and user will stay on login page
}if (customer.equals(cusid)){
System.out.println("hello" + cusid);
request.setAttribute("ID", cusid);
request.setAttribute("name", cusn);
request.setAttribute("surname", cussn);
request.setAttribute("mail", cusm);
request.setAttribute("address", cusaddr);
request.setAttribute("telephone", custel);
request.getRequestDispatcher("account.jsp").forward(request, response);
}else{
}
}
}catch(ClassNotFoundException | SQLException | HeadlessException ex) {
Logger.getLogger(LogInController.class.getName()).log(Level.SEVERE, null, ex);
}
Спасибо миллион, я только что изменил соответственно




Метод PreparedStatement#executeQuery() не принимает никаких параметров. Измените это:
ResultSet rst = sta.executeQuery(query);
к этому:
ResultSet rst = sta.executeQuery();
Это довольно частая ошибка при использовании этого API. У вас могут быть и другие проблемы с вашим кодом, но это должно заметно улучшить.
Бесконечно благодарен.
Что вы имеете в виду под
i can not search more than one record in a database? вы выходите из циклаwhileпосле первой итерации, либо показываетеuser not found, либо показываете информацию о пользователе, если первая строка набора результатов совпадает с вводом. И, кстати, почему бы вам не отфильтровать данные в базе данных с помощью предложенияWHEREв запросе SQL?