класса Connection. Например, вызов метода
Statement query = dbh.createStatement();
создает объект query, соответствующий SQL-команде. Если SQL-команда не предполагает получение данных из базы (такими командами являются, например, команды INSERT, UPDATE, DELETE), то для ее выполнения используется метод
int executeUpdate(«<���Текст команды>») throws SQLException
класса Statement. Метод executeUpdate() возвращает количество строк, с которыми была выполнена операция. Для выполнения SQL-запроса используется метод
ResultSet executeQuery(«<���Текст запроса>») throws SQLException
класса Statement. Метод executeQuery() возвращает объект класса ResultSet, содержащий набор полученных запросом данных. Важным элементом результирующего набора является курсор – указатель на текущую строку.
Для извлечения данных из результирующего набора нам потребуются следующие методы класса ResultSet.
• boolean next() throws SQLException
Переводит курсор на следующую строку. При первом вызове устанавливает курсор на первую строку. Если строки результирующего набора исчерпаны, возвращает значение FALSE.
• Методы вида get^rn данных>(<���Имя или номер столбца>) возвращают значение, находящееся в текущей строке в указанном столбце. В зависимости от типа данных столбца вы можете использовать следующие функции:
• для числовых столбцов:
boolean getBoolean(<���Имя или номер столбца>)
throws SQLException
int getInt(<���Имя или номер столбца>)
throws SQLException
long getLong(<���Имя или номер столбца>)
throws SQLException
float getFloat(<���Имя или номер столбца>)
throws SQLException
double getDouble(<���Имя или номер столбца>)
throws SQLException
BigDecimal getBigDecimal(<���Имя или номер столбца>)
throws SQLException
• для столбцов с типом даты и/или времени:
Date getDate(<���Имя или номер столбца>)
throws SQLException
Timestamp getTimestamp(<���Имя или номер столбца>)
throws SQLException
Time getTime(<���Имя или номер столбца>)
throws SQLException
• для символьных типов данных:
String getString(<���Имя или номер столбца>)
throws SQLException
byte[] getBytes(<���Имя или номер столбца>)
throws SQLException
Рассмотрим сервлет, который выполняет простой запрос для получения данных из таблицы Products (Товары) и выводит сведения о товарах на веб-странице (листинг 4.18). Листинг 4.18.Получение информации и отображение ее на странице
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.sql.*;
public class Output extends HttpServlet {
public void service(HttpServletRequest request,
HttpServletResponse response) throws IOException, ServletException {
response.setContentType(«text/html;charset=windows-1251»);
PrintWriter out = response.getWriter();
//Создаем строку для вывода результата запроса
String pagecontent = «»;
try {
//Подсоединяемся к базе данных
Connection dbh =
DriverManager.getConnection(«jdbc:mysql://localhost/SalesDept»
+»?user=username&password=userpassword&characterEncoding=cp1251»);
//Создаем объект для SQL-команд
Statement query = dbh.createStatement();
//Выполняем запрос к базе данных
ResultSet qresult = query.executeQuery(«SELECT * FROM Products»);
//Для каждой строки в результирующем наборе выводим значения столбцов
//description (наименование), details (описание) и price (цена)
while (qresult.next()) {
pagecontent +=
«
» + qresult.getString(«description») + « |
» + qresult.getString(«details») + « |
» + qresult.getBigDecimal(«price») + « |
\n»;
}
//Обрабатываем исключение
} catch (SQLException ex) {
out.println(“Ошибка доступа к базе данных. Приносим свои извинения”);
return;
}
//Выводим полученные данные
out.println(«»);
out.println(«
»);
out.println(«»);
out.println(«»);
out.println(«
»);
out.println(“”);
out.println(“
Список товаров
”);
out.println(«
»);
out.println(«
»);
out.println(«
»);
out.println(«
»);
out.println(«
»);
out.println(«
»);
out.println(pagecontent);
out.println(«
Наименование |
Описание |
Цена |
»);
out.println(«
»);
out.println(“
”);
}
}
В этом примере вначале выполняется подключение к базе данных, далее создается объект query класса Statement, затем метод executeQuery() этого объекта выполняет запрос к базе данных. Результат запроса записывается в объект qresult класса ResultSet. Затем последовательно рассматриваются строки объекта qresult и выводятся значения столбцов description, details и price.
Читать дальше
Конец ознакомительного отрывка
Купить книгу