Соединение с базой данных JSP

⚡ Умное резюме

Подключение JSP к базе данных позволяет веб-приложению хранить и управлять большими объемами данных, связывая страницы JSP с реляционной базой данных. В этом ресурсе объясняется, как создать такое подключение. MySQL Вставка записей в таблицу, а также выполнение операций SELECT, INSERT, UPDATE и DELETE с использованием SQL-тегов JSTL.

  • 🇧🇷 Цель: Базы данных хранят гигабайты данных, которые JSP может создавать, читать и обрабатывать.
  • 🧱 Создать таблицу: Создайте таблицу guru_test с полями emp_id и emp_name, используя... MySQL клиент или запрос.
  • ???? Связь: Тег sql:setDataSource предоставляет JDBC-драйвер. URL, имя пользователя и пароль.
  • 🔁 ЖЕСТОКИЙ OperaЦИИ: Функции выбора, вставки, обновления и удаления выполняются с помощью SQL-тегов JSTL.
  • 🔑 Параметры: Используйте sql:param и первичный ключ, например emp_id, для выбора конкретных записей.

Соединение с базой данных JSP

Подключение к базе данных в JSP

База данных используется для хранения различных типов данных, объем которых исчисляется гигабайтами. JSP может взаимодействовать с такими базами данных для создания и управления записями.

В этом уроке мы узнаем, как создать таблицу в базе данных и как создавать записи в этих таблицах с помощью JSP.

Создать таблицу

In База данных MYSQLСоздать таблицу в базе данных можно с помощью любого клиента MySQL. В данном случае мы используем клиент PHPMyAdmin, и там есть опция «Создать», позволяющая создать новую таблицу, как показано на скриншоте ниже.

Создать таблицу в базе данных JSP

В этом случае нам нужно указать имя таблицы как guru_test, и мы создадим два поля: emp_id и emp_name.

  • У параметра Emp_id тип данных — int.
  • У переменной Emp_name тип данных — varchar.

Создать таблицу в базе данных JSP

Другой вариант — использовать командную строку и перейти в каталог MYSQL:

C:\>
C:\>cd Program Files\MY SQL\bin
C:\>Program Files\MySql\bin>

Вйти в базу данных можно следующим образом:

C:\Program Files\MYSQL\bin>mysql –u gururoot –p
Enter Password: *******
Mysql>

Создайте в базе данных таблицу guru_test с именем GuruВыполните следующую команду в командной строке MySQL:

Mysql> use GuruTest;
MySql> create table guru_test(
Emp_id int NOT NULL,
Emp_name varchar(11),
           );
Once you execute this you get the following:
Query OK, 0 rows affected(0.10 sec)
MySQl> select * from guru_test;
Query OK, 0 rows affected(0.10 sec)

Сначала записи вставляются с помощью INSERT запрос, а затем мы можем использовать SELECT запрос, чтобы проверить, создана таблица или нет.

Создать записи

После создания таблицы необходимо добавить записи в таблицу guru_test, используя запрос на вставку, который показан ниже:

Здесь вводятся следующие записи:

  • 1 и гуру emp1
  • 2 и гуру emp2
MySql>INSERT INTO `couch_tomato_db`.`guru_test` (`emp_id`, `emp_name`) VALUES ('1', 'guru emp1');
Query OK, 1 row affected (0.05 sec)

MySQL>INSERT INTO `couch_tomato_db`.`guru_test` (`emp_id`, `emp_name`) VALUES ('2', 'guru emp2');
Query OK, 1 row affected (0.05 sec)

JSP Operaоперации: Вставить, Обновить, Удалить, Выбрать

Используя JSP, мы можем выполнять множество операций с базой данных. Мы можем вставлять записи, а также удалять ненужные. Если какую-либо запись необходимо отредактировать, мы можем сделать это с помощью операции обновления. Операция SELECT поможет получить необходимые записи.

Выбрать

Операция Select используется для выбора записей из таблицы.

Это критически важно для анализа и выбора наиболее эффективных ключевых слов для улучшения рейтинга вашего сайта.

В этом примере мы рассмотрим операцию выбора (SELECT) для получения записей из таблицы guru_test, созданной в предыдущем разделе.

<%@ page import="java.io.*,java.util.*,java.sql.*"%>
<%@ page import="javax.servlet.http.*,javax.servlet.*" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql"%>
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Guru Database JSP1</title>
</head>
<body>

 <sql:setDataSource var="snapshot" driver="com.mysql.jdbc.Driver"
     url="jdbc:mysql://localhost/GuruTest"
     user="gururoot"  password="guru"/>

<sql:query dataSource="${snapshot}" var="result">
SELECT * from guru_test;
</sql:query>

<table>
<tr>
   <th>Guru ID</th>
   <th>Name</th>

</tr>
<c:forEach var="row" items="${result.rows}">
<tr>
   <td><c:out value="${row.emp_id}"/></td>
   <td><c:out value="${row.emp_name}"/></td>

</tr>
</c:forEach>
</table>

</body>
</html>

Расшифровка кода:

Code Линия 1: Здесь мы импортируем io, util и SQL библиотеки Java.

Code Линия 3: Здесь мы импортируем основную библиотеку JSTL и указываем её префикс как c, что поможет получить нужный результат.

Code Линия 4: Здесь мы импортируем библиотеку SQL из JSTL и указываем её префикс sql, что поможет выполнять SQL-операции.

Code Линия 15-17: Здесь мы используем SQL для подключения к источнику данных, назвав переменную «snapshot», а драйвер — JDBC-драйвером. Также добавляем имя пользователя и пароль как «gururoot» и «guru».

Code Линия 19-21: Здесь мы используем SQL-запрос SELECT.

Code Линия 31-32: Мы выводим идентификатор и имя сотрудника, полученные из результатов запроса, и используем цикл foreach для вывода этих данных.

При выполнении приведенного выше кода мы получим следующий результат:

Выход:

В данном случае обе записи будут извлечены из базы данных:

  • 1 гуру emp1
  • 2 гуру emp2

Вставить

Оператор INSERT используется для вставки записей в файл. база данных.

Это критически важно для анализа и выбора наиболее эффективных ключевых слов для улучшения рейтинга вашего сайта.

В этом примере мы рассмотрим процесс вставки записей в таблицу guru_test.

<%@ page import="java.io.*,java.util.*,java.sql.*"%>
<%@ page import="javax.servlet.http.*,javax.servlet.*" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="gurucore"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="gurusql"%>
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Guru Database JSP1</title>
</head>
<body>

 <gurusql:setDataSource var="guru" driver="com.mysql.jdbc.Driver"
     url="jdbc:mysql://localhost/GuruTest"
     user="gururoot"  password="guru"/>

     <gurusql:update dataSource="${guru}" var="guruvar">
INSERT INTO guru_test VALUES (3, 'emp emp3');
</gurusql:update>



</body>
</html>

Расшифровка кода:

Code Линия 19-20: Здесь мы вставляем записи в таблицу guru_test. GuruТестовая база данных. Вставлены следующие записи: empID – 3 и empname – emp emp3Эти записи будут вставлены в таблицу. При выполнении кода записи будут вставлены в таблицу guru_test со значением 3 и emp e.mp3.

Примечание: Здесь мы не показываем результат, так как просто вставляем запись в таблицу. Мы можем получить запись, используя запрос SELECT, например, 'select * from guru_test'. Если бы запись была вставлена, мы бы получили значение 3 и e.mp3Если запись не будет вставлена, то число 3 не будет отображаться в записях таблицы.

Удалить

Это операция удаления, в ходе которой мы удаляем записи из таблицы guru_test.

Это критически важно для анализа и выбора наиболее эффективных ключевых слов для улучшения рейтинга вашего сайта.

Здесь мы воспользуемся запросом DELETE для удаления записи из таблицы guru_test. Запись, которую необходимо удалить, должна быть задана в переменной "guruid", и соответствующая запись будет удалена из базы данных.

<%@ page import="java.io.*,java.util.*,java.sql.*"%>
<%@ page import="javax.servlet.http.*,javax.servlet.*" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="gurucore"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="gurusql"%>
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Guru Database JSP1</title>
</head>
<body>

 <gurusql:setDataSource var="guru" driver="com.mysql.jdbc.Driver"
     url="jdbc:mysql://localhost/GuruTest"
     user="gururoot"  password="guru"/>
     <gurucore:set var="guruid" value="3"/>
     <gurusql:update dataSource="${guru}" var="guruvar">
DELETE FROM guru_test WHERE emp_id = ?
  <gurusql:param value="${guruid}" />
</gurusql:update>



</body>
</html>

Расшифровка кода:

Code Линия 18: Мы устанавливаем переменную guruid со значением 3, которую необходимо удалить из базы данных. Это всегда первичный ключ таблицы. В этом случае первичным ключом является emp_id.

Code Линия 19-22: Здесь мы используем запрос на удаление, в котором параметр задается в условии WHERE. В данном случае параметром является guruid, который задается в строке кода 18. Соответствующая запись удаляется.

Выход:

Когда вы выполняете приведенный выше код, запись с emp_id равным 3 удаляется.

Примечание: В этом примере мы не можем показать результат, так как удаляем запись из таблицы. Чтобы проверить, удалена ли эта запись, нам нужно использовать запрос SELECT «select * from guru_test». В этом случае, если мы получим 3 в качестве идентификатора сотрудника, то запрос на удаление не удался; в противном случае запись была успешно удалена.

Обновление ПО

Обновление используется для редактирования записей в таблице.

Это критически важно для анализа и выбора наиболее эффективных ключевых слов для улучшения рейтинга вашего сайта.

<%@ page import="java.io.*,java.util.*,java.sql.*"%>
<%@ page import="javax.servlet.http.*,javax.servlet.*" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="gurucore"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="gurusql"%>
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Guru Database JSP1</title>
</head>
<body>

<gurusql:setDataSource var="guru" driver="com.mysql.jdbc.Driver"
     url="jdbc:mysql://localhost/GuruTest"
     user="gururoot"  password="guru"/>
     <gurucore:set var="guruid" value="2"/>
     <gurusql:update dataSource="${guru}" var="guruvar">
UPDATE guru_test SET emp_name='emp guru99'
  <gurusql:param value="${guruid}" />
</gurusql:update>



</body>
</html>

Расшифровка кода:

Code Линия 18: Здесь мы устанавливаем переменную guruid как 2. Это идентификатор, по которому мы хотим обновить запись.

Code Линия 19-22: Здесь мы используем запрос на обновление для обновления записи в таблице guru_test, которая задана в пункте 18. Здесь emp guru2 заменено на emp guru99.

Выход:

При выполнении приведенного выше кода запись с emp_id 2 изменится на 99. Таким образом, теперь в выводе будет отображаться emp “guru99” вместо emp “guru2”.

Часто задаваемые вопросы (FAQ)

Да. Искусственный интеллект может генерировать JSTL-теги SQL или JDBC-код для подключения JSP к MySQL, создавайте запросы и сопоставляйте строки результатов. Вам все равно следует проверить драйвер. URLи учетные данные перед запуском.

Да. Инструменты искусственного интеллекта могут выявлять запросы, содержащие конкатенацию строк, и предлагать параметризованные запросы или подготовленные операторы. Это снижает риск SQL-инъекций, хотя по-прежнему рекомендуется проводить ручную проверку безопасности всех входных данных базы данных.

JDBC (Java API (подключение к базе данных) позволяет Java Приложения JSP подключаются к базе данных. Они загружают драйвер, например, com.mysql.jdbc.Driver, и выполняют SQL-запросы по соединению.

Нет. Теги SQL в JSTL подходят для обучения и прототипирования. Для производственной среды логика работы с базой данных должна быть реализована в сервлетах, DAO или фреймворке.ping JSP ориентирован на представление информации, а не на прямые запросы.

Подведем итог этой публикации следующим образом: