В этой главе предполагается, что вы уже имеете определенное представление о JDBC. Прежде чем приступить к изучению доступа к базе данных JSP, убедитесь, что среда JDBC настроена правильно.
Сначала давайте выполним следующие шаги, чтобы создать простую таблицу и вставить несколько простых записей:
Создайте таблицу «Сотрудники» в базе данных. Шаги следующие:
Откройте CMD и введите каталог установки базы данных:
C:>C:>cd Program FilesMySQLbinC:Program FilesMySQLbin>
C:Program FilesMySQLbin>mysql -u root -pВведите пароль: ********mysql>
Используйте оператор создания базы данных, чтобы создать новую базу данных TEST:
mysql> создать базу данных TEST
Создайте таблицу «Сотрудники» в базе данных TEST:
mysql> используйте TEST;mysql> создайте таблицу Сотрудники (id int не нулевой, возраст int не нулевой, первый varchar (255), последний varchar (255)); Запрос ОК, затронуто 0 строк (0,08 секунды) mysql>
После создания таблицы «Сотрудники» вставьте в нее несколько записей:
mysql> INSERT INTO Сотрудники VALUES (100, 18, «Зара», «Али»); Запрос ОК, затронута 1 строка (0,05 секунды) mysql> INSERT INTO Сотрудники VALUES (101, 25, «Махназ», «Фатма»); Запрос ОК, затронута 1 строка (0,00 сек) mysql> INSERT INTO Сотрудники VALUES (102, 30, 'Zaid', 'Khan');Запрос ОК, изменена 1 строка (0,00 сек) mysql> INSERT INTO Сотрудники VALUES (103, 28, 'Sumit', 'Mittal');Запрос ОК, изменена 1 строка (0,00 сек) mysql>
В следующем примере показано, как использовать теги JSTL SQL для выполнения операторов SQL SELECT:
<%@
язык страницы
=
"Ява"
тип контента
=
"текст/html; кодировка = UTF-8"
кодировка страницы
=
«УТФ-8»
%>
<%@
страница
импортировать
=
"java.io.*,java.util.*,java.sql.*"
%>
<%@
страница
импортировать
=
"javax.servlet.http.*,javax.servlet.*"
%>
<%@
библиотека тегов URI
=
"http://java.sun.com/jsp/jstl/core"
префикс
=
"с"
%>
<%@
библиотека тегов URI
=
"http://java.sun.com/jsp/jstl/sql"
префикс
=
"sql"
%>
<html>
<голова>
<название>
ВЫБРАТЬ операцию
</title>
</голова>
<тело>
<sql:setDataSource
вар
=
"снимок"
водитель
=
"com.mysql.jdbc.Driver"
URL
=
"jdbc:mysql://localhost:3306/TEST"
пользователь
=
"корень"
пароль
=
"pass123"
/>
<sql:запрос
источник данных
=
"${снимок}"
вар
=
"результат"
>
ВЫБРАТЬ * из сотрудников;
</sql:запрос>
<таблица
граница
=
"1"
ширина
=
«100%»
>
<тр>
<й>
идентификатор эмпа
</th>
<й>
Имя
</th>
<й>
Фамилия
</th>
<й>
Возраст
</th>
</tr>
<c:forEach
вар
=
"ряд"
предметы
=
"${result.rows}"
>
<тр>
<td><c:выход
ценить
=
"${row.id}"
/></тд>
<td><c:выход
ценить
=
"${row.first}"
/></тд>
<td><c:выход
ценить
=
"${row.last}"
/></тд>
<td><c:выход
ценить
=
"${row.age}"
/></тд>
</tr>
</c:forEach>
</таблица>
</тело>
</html>
Откройте этот пример JSP, и результаты будут следующими:
В этом примере показано, как использовать теги JSTL SQL для выполнения операторов SQL INSERT:
<%@
язык страницы
=
"Ява"
тип контента
=
"текст/html; кодировка = UTF-8"
кодировка страницы
=
«УТФ-8»
%>
<%@
страница
импортировать
=
"java.io.*,java.util.*,java.sql.*"
%>
<%@
страница
импортировать
=
"javax.servlet.http.*,javax.servlet.*"
%>
<%@
библиотека тегов URI
=
"http://java.sun.com/jsp/jstl/core"
префикс
=
"с"
%>
<%@
библиотека тегов URI
=
"http://java.sun.com/jsp/jstl/sql"
префикс
=
"sql"
%>
<html>
<голова>
<название>
ВСТАВИТЬ операцию
</title>
</голова>
<тело>
<sql:setDataSource
вар
=
"снимок"
водитель
=
"com.mysql.jdbc.Driver"
URL
=
"jdbc:mysql://localhost/TEST"
пользователь
=
"корень"
пароль
=
"pass123"
/>
<sql:обновить
источник данных
=
"${снимок}"
вар
=
"результат"
>
ВСТАВИТЬ В ЗНАЧЕНИЯ сотрудников (104, 2, «Нуха», «Али»);
</sql:обновление>
<sql:запрос
источник данных
=
"${снимок}"
вар
=
"результат"
>
ВЫБРАТЬ * из сотрудников;
</sql:запрос>
<таблица
граница
=
"1"
ширина
=
«100%»
>
<тр>
<й>
Идентификатор эмпа
</th>
<й>
Имя
</th>
<й>
Фамилия
</th>
<й>
Возраст
</th>
</tr>
<c:forEach
вар
=
"ряд"
предметы
=
"${result.rows}"
>
<тр>
<td><c:выход
ценить
=
"${row.id}"
/></тд>
<td><c:выход
ценить
=
"${row.first}"
/></тд>
<td><c:выход
ценить
=
"${row.last}"
/></тд>
<td><c:выход
ценить
=
"${row.age}"
/></тд>
</tr>
</c:forEach>
</таблица>
</тело>
</html>
Откройте этот пример JSP, и результаты будут следующими:
В этом примере показано, как использовать теги JSTL SQL для выполнения операторов SQL DELETE:
<%@
язык страницы
=
"Ява"
тип контента
=
"текст/html; кодировка = UTF-8"
кодировка страницы
=
«УТФ-8»
%>
<%@
страница
импортировать
=
"java.io.*,java.util.*,java.sql.*"
%>
<%@
страница
импортировать
=
"javax.servlet.http.*,javax.servlet.*"
%>
<%@
библиотека тегов URI
=
"http://java.sun.com/jsp/jstl/core"
префикс
=
"с"
%>
<%@
библиотека тегов URI
=
"http://java.sun.com/jsp/jstl/sql"
префикс
=
"sql"
%>
<html>
<голова>
<название>
УДАЛЕНИЕ операции
</title>
</голова>
<тело>
<sql:setDataSource
вар
=
"снимок"
водитель
=
"com.mysql.jdbc.Driver"
URL
=
"jdbc:mysql://localhost/TEST"
пользователь
=
"корень"
пароль
=
"pass123"
/>
<с:установить
вар
=
"empId"
ценить
=
"103"
/>
<sql:обновить
источник данных
=
"${снимок}"
вар
=
"считать"
>
УДАЛИТЬ ИЗ СОТРУДНИКОВ ГДЕ Id = ?
<sql:параметр
ценить
=
"${empId}"
/>
</sql:обновление>
<sql:запрос
источник данных
=
"${снимок}"
вар
=
"результат"
>
ВЫБРАТЬ * из сотрудников;
</sql:запрос>
<таблица
граница
=
"1"
ширина
=
«100%»
>
<тр>
<й>
Идентификатор эмпа
</th>
<й>
Имя
</th>
<й>
Фамилия
</th>
<й>
Возраст
</th>
</tr>
<c:forEach
вар
=
"ряд"
предметы
=
"${result.rows}"
>
<тр>
<td><c:выход
ценить
=
"${row.id}"
/></тд>
<td><c:выход
ценить
=
"${row.first}"
/></тд>
<td><c:выход
ценить
=
"${row.last}"
/></тд>
<td><c:выход
ценить
=
"${row.age}"
/></тд>
</tr>
</c:forEach>
</таблица>
</тело>
</html>
Откройте этот пример JSP, и результаты будут следующими:
В этом примере показано, как использовать теги JSTL SQL для запуска операторов SQL UPDATE:
<%@
язык страницы
=
"Ява"
тип контента
=
"текст/html; кодировка = UTF-8"
кодировка страницы
=
«УТФ-8»
%>
<%@
страница
импортировать
=
"java.io.*,java.util.*,java.sql.*"
%>
<%@
страница
импортировать
=
"javax.servlet.http.*,javax.servlet.*"
%>
<%@
библиотека тегов URI
=
"http://java.sun.com/jsp/jstl/core"
префикс
=
"с"
%>
<%@
библиотека тегов URI
=
"http://java.sun.com/jsp/jstl/sql"
префикс
=
"sql"
%>
<html>
<голова>
<название>
Операция ОБНОВЛЕНИЕ
</title>
</голова>
<тело>
<sql:setDataSource
вар
=
"снимок"
водитель
=
"com.mysql.jdbc.Driver"
URL
=
"jdbc:mysql://localhost/TEST"
пользователь
=
"корень"
пароль
=
"pass123"
/>
<с:установить
вар
=
"empId"
ценить
=
"102"
/>
<sql:обновить
источник данных
=
"${снимок}"
вар
=
"считать"
>
ОБНОВЛЕНИЕ Сотрудники SET последний = 'Али' ГДЕ Id = ?
<sql:параметр
ценить
=
"${empId}"
/>
</sql:обновление>
<sql:запрос
источник данных
=
"${снимок}"
вар
=
"результат"
>
ВЫБРАТЬ * из сотрудников;
</sql:запрос>
<таблица
граница
=
"1"
ширина
=
«100%»
>
<тр>
<й>
Идентификатор эмпа
</th>
<й>
Имя
</th>
<й>
Фамилия
</th>
<й>
Возраст
</th>
</tr>
<c:forEach
вар
=
"ряд"
предметы
=
"${result.rows}"
>
<тр>
<td><c:выход
ценить
=
"${row.id}"
/></тд>
<td><c:выход
ценить
=
"${row.first}"
/></тд>
<td><c:выход
ценить
=
"${row.last}"
/></тд>
<td><c:выход
ценить
=
"${row.age}"
/></тд>
</tr>
</c:forEach>
</таблица>
</тело>
</html>
Откройте этот пример JSP, и результаты будут следующими: