Мог кто-то давать мне ссылку на то, как создать запрос в JDBC, который вкладывает имя переменной, ГДЕ оператор, или пишут пример, чтобы быть более конкретным, мой код выглядит примерно так:
private String getLastModified(String url) {
String lastModified = null;
ResultSet resultSet;
String query = "select LastModified from CacheTable where " +
" URL.equals(url)";
try {
resultSet = sqlStatement.executeQuery(query);
}
Теперь мне нужен синтаксис, который позволяет мне возвратить объект ResultSet, где URL в cacheTable равняется URL от аргумента метода.
спасибо
Самый простой способ -
String query = "select LastModified from CacheTable where url = '" + url +"'";
Вы должны использовать переменные связывания, хотя :
String query = "select LastModified from CacheTable where url = ?";
prepStmt = conn.prepareStatement(query);
prepStmt.setString(1, url);
rs = prepStmt.executeQuery();
Чтобы развеять заблуждение: JDBC и SQL - это две совершенно разные вещи. Базы данных понимают только язык SQL. Это (полу) стандарт, который вы можете изучить здесь . JDBC - это просто Java API, который позволяет вам выполнять язык SQL с использованием кода Java. Ни меньше, ни больше. JDBC - это не способ написания языка SQL на языке Java или что-то в этом роде. Это просто мессенджер между кодом Java и базой данных. Вы можете изучить JDBC здесь .
Тем не менее, да, PreparedStatement
- это способ установить значения в запросе SQL. Это не только упрощает установку полноценных объектов Java в строку SQL с помощью методов setXXX ()
, но также избавляет вас от атак SQL-инъекций .
Чтобы сделать еще один шаг вперед, вам действительно следует использовать DBUtils из apache-commons или Sping JDBC framework. Большая часть работы с JDBC является рутинной и подверженной ошибкам из-за количества этапов, связанных с ней. По обеим ссылкам есть рабочие примеры, с которых вы можете начать.
Эти вспомогательные библиотеки сделают вашу жизнь намного комфортнее :-).