Я использую Java 8 и Oracle.
Я подтвердил, что этот код работает:
Statement stmt = null;
String query = "select * from custref";
stmt = con.createStatement();
ResultSet rs = stmt.executeQuery(query);
while (rs.next()) {
String cName = rs.getString("CUSTOMER_NAME");
System.out.println(cName);
}
Когда я изменяю это на это, это не дает никаких результатов:
PreparedStatement prepStmt = null;
String query = "select * from custref where CUSTOMER_NUMBER = ?";
prepStmt = con.prepareStatement(query);
prepStmt.setString(1, "12344321");
ResultSet rs = prepStmt.executeQuery();
while (rs.next()) {
String cName = rs.getString("CUSTOMER_NAME");
System.out.println(cName);
}
Я подтвердил, что мой тип данных VARCHAR, следовательно, заданная строка. Я знаю, что с моими соединениями все в порядке, потому что основной поиск работает только тогда, когда я переключаюсь на параметризованный, он не завершается с ошибкой или выдает исключения, у него просто нет набора результатов. Я также попробовал соглашение: customerNumber вместо? и это тоже не сработало. Это довольно неловко, но я нахожусь здесь в конце, ничто, что я не могу найти, кажется, решает эту проблему.