Определение имени переменной в операторе Where ЗАПРОСА в JDBC

Мог кто-то давать мне ссылку на то, как создать запрос в 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 от аргумента метода.

спасибо

6
задан Noona 9 April 2010 в 14:52
поделиться

3 ответа

Самый простой способ -

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();
14
ответ дан 8 December 2019 в 14:41
поделиться

Чтобы развеять заблуждение: JDBC и SQL - это две совершенно разные вещи. Базы данных понимают только язык SQL. Это (полу) стандарт, который вы можете изучить здесь . JDBC - это просто Java API, который позволяет вам выполнять язык SQL с использованием кода Java. Ни меньше, ни больше. JDBC - это не способ написания языка SQL на языке Java или что-то в этом роде. Это просто мессенджер между кодом Java и базой данных. Вы можете изучить JDBC здесь .

Тем не менее, да, PreparedStatement - это способ установить значения в запросе SQL. Это не только упрощает установку полноценных объектов Java в строку SQL с помощью методов setXXX () , но также избавляет вас от атак SQL-инъекций .

1
ответ дан 8 December 2019 в 14:41
поделиться

Чтобы сделать еще один шаг вперед, вам действительно следует использовать DBUtils из apache-commons или Sping JDBC framework. Большая часть работы с JDBC является рутинной и подверженной ошибкам из-за количества этапов, связанных с ней. По обеим ссылкам есть рабочие примеры, с которых вы можете начать.

Эти вспомогательные библиотеки сделают вашу жизнь намного комфортнее :-).

1
ответ дан 8 December 2019 в 14:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: