невозможно сравнить значения экрана с табличным значением sql

0

Я пытаюсь сравнить введенные значения экрана со значением, хранящимся в БД. В настоящее время я пытаюсь использовать этот код:

cell = sheet.getRow(i).getCell(2);
Class.forName("com.mysql.cj.jdbc.Driver");
Connection con = DriverManager.getConnection ("jdbc:mysql://madison-dev.czr6vej2htnn.us-east-1.rds.amazonaws.com:3306/madisondb","madisonadmin","t4xuw94$");// + "databasename=madison-dev.czr6vej2htnn.us-east-1.rds.amazonaws.com";
Statement st = con.createStatement();
ResultSet Rs = st.executeQuery("select name, zipcode, state, city, street from business_master where user_id =(\r\n" + 
    "select id\r\n" + 
    "from user_master\r\n" + 
    "where email = 'cell.getStringCellValue()') \r\n");

while (Rs.next()) {
    //  System.out.println(Rs.getString(1) + "  " + Rs.getString(2) + "  " + Rs.getString(3) + "  "
    //  + Rs.getString(4) + "  " + Rs.getString(5));
    System.out.println(Rs.getString(0));
}

Экран не показывает никаких значений.. и когда я пытаюсь распечатать System.out.println(Rs.getString(3)) вне цикла, он дает мне ошибку

java.sql.SQLException: Незаконная операция при пустом наборе результатов.

  • 1
    Это не имеет ничего общего с Selenium.
  • 2
    Я не очень хорошо разбираюсь в Sql, но попробуйте проверить размер вашего ResultSet, если размер равен 0, то вы пытаетесь получить информацию в пустом наборе
Показать ещё 1 комментарий
Теги:
database

1 ответ

1

Вы пытаетесь найти все строки, в которых адрес электронной почты буквально является 'cell.getStringCellValue()' а не значением, возвращаемым этим методом.

Пока вы кодируете строку запроса, это заставляет вас открывать атаки SQL-инъекций. Вместо этого используйте подготовленное выражение

PreparedStatement st = con.prepareStatement(
    "select name, zipcode, state, city, street from business_master where user_id =(" + 
    "select id " + 
    "from user_master " + 
    "where email = ?)");
st.setString(1, cell.getStringCellValue());
ResultSet Rs = st.executeQuery();
  • 0
    спасибо @JimNicholson, позвольте мне попробовать это.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню