JSP връзка с база данни

⚡ Умно обобщение

JSP връзката с база данни позволява на уеб приложение да съхранява и управлява големи обеми от данни, като свързва JSP страници с релационна база данни. Този ресурс обяснява как да се създаде MySQL таблица, вмъкване на записи и извършване на операции за избор, вмъкване, актуализиране и изтриване, използвайки JSTL sql тагове.

  • 🗄️ Основание: Базите данни съхраняват гигабайти данни, които JSP може да създава, чете и управлява.
  • 🧱 Създаване на таблица: Създайте таблица guru_test с emp_id и emp_name, използвайки MySQL клиент или подкана.
  • 🔌 Връзка: Тагът sql:setDataSource предоставя JDBC драйвера, URL, потребител и парола.
  • 🔁 СУРОВ Operaции: Избор, вмъкване, актуализиране и изтриване се изпълняват чрез JSTL sql тагове.
  • 🔑 Параметри: Използвайте 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 заявката на заявката за избор.

Code Ред 31-32: Отпечатваме изхода за emp id и emp name, които са извлечени от резултатите от заявката, и използваме 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 и празен поле e.mp3.

Забележка: Тук не показваме резултата, тъй като само вмъкваме записа в таблицата. Можем да получим записа, използвайки заявката за избор като „select * from guru_test“. Ако записът беше вмъкнат, тогава ще получим стойността като 3 и e.mp3Ако записът не е вмъкнат, тогава 3 няма да се вижда в записите в таблицата.

Изтрий

Това е операцията за изтриване, при която изтриваме записите от таблицата guru_test.

Пример:

Тук ще използваме заявката за изтриване, за да изтрием записа от таблицата 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 * from guru_test“. В този случай, ако получим 3 като emp id, заявката за изтриване е неуспешна; в противен случай записът е изтрит успешно.

Актуализация

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

Пример:

<%@ 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. Това е ID, където искаме да актуализираме записа.

Code Ред 19-22: Тук използваме заявка за актуализиране, за да актуализираме записа в таблицата guru_test на записа, който е зададен в точка 18. Тук emp guru2 е заменен с emp guru99.

Изход:

Когато изпълните горния код, записът с emp_id 2 се променя на 99. Така че сега изходът ще показва emp „guru99“ вместо emp „guru2“.

Въпроси и Отговори

Да. Асистентите с изкуствен интелект могат да генерират JSTL sql тагове или JDBC код за свързване на JSP към MySQL, да изгражда заявки и да картографира редове с резултати. Все пак трябва да проверите драйвера, URLи идентификационни данни преди изпълнение.

Да. Инструментите с изкуствен интелект могат да маркират заявки, свързани с низове, и да предлагат параметризирани заявки или подготвени оператори. Това намалява риска от SQL инжектиране, въпреки че все още се препоръчва ръчен преглед на сигурността на всички входни данни в базата данни.

JDBC (Java Свързване с база данни) е API, който позволява Java и JSP приложенията се свързват с база данни. Той зарежда драйвер, като например com.mysql.jdbc.Driver, и изпълнява SQL изрази през връзката.

Не. JSTL sql таговете са подходящи за обучение и прототипи. За производство, логиката на базата данни принадлежи на сървлети, DAO или рамка, keeping JSP се фокусира върху представянето, а не върху директните заявки.

Обобщете тази публикация с: