Я написал следующий код, и набор результатов (здесь его обозначен как rs3) возвращает true, даже если нет результата. Я хочу проверить, нет ли результата, который пользователь должен ввести правильный производитель телефона. Не знаете, где я ошибаюсь?resultset in jdbc возвращается true
BufferedReader r2 = new BufferedReader(new InputStreamReader(System.in));
String phone_manufacturer="";
boolean value1=true;
while (value1) {
System.out.println("\nPlease select your choice of phone manufacturer ");
String line = r2.readLine();
if (line.matches("[A-Za-z ]+$")) {
phone_manufacturer = line;
final String sql3 = "SELECT * from phone_model WHERE phone_type = '"+phone_type_choice+"' and manufacturer ='"+phone_manufacturer+"'";
st3 = connection.createStatement();
rs3= st3.executeQuery(sql3);
if(rs3!=null){
System.out.println("Model"+" "+"Manufacturer"+""+"Phone_type");
while(rs3.next()){
String modell = rs3.getString("Model");
String manufacturer = rs3.getString("Manufacturer");
String phone_type = rs3.getString("Phone_type");
System.out.format("%-25s%-20s%-10s\n",modell,manufacturer,phone_type);
}
}
else
{
System.out.println("The manufacturer isn't avaiable for the phone type choosen.Please try again");
value1=true;
continue;
}
value1=false;
}else
{
System.out.println("\nPlease enter correct manufacturer name ");
value1=true;
continue;
}
break;
}
вы должны проверить, как, что, если (resultSet.isBeforeFirst()) { System.out. println («Нет данных»); } –
executeQuery ** всегда ** возвращает набор результатов, даже если он пуст. –
Вы говорите, что rs3.next() возвращает true? Кстати, ваш код здесь уязвим для SQL-инъекций, поэтому я надеюсь, что это всего лишь пример. IE., Кто-то входит в phone_type = "1; DROP TABLE phone_model; -" – Jamie