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

Свързване към база данни в JSP
Базата данни се използва за съхраняване на различни видове данни, които са огромни и имат капацитет за съхранение в гигабайти. JSP може да се свързва с такива бази данни, за да създава и управлява записите.
В този урок ще научим как да създадем таблица в базата данни и как да създадем записи в тези таблици чрез JSP.
Създаване на таблица
In MYSQL база данни, можем да създадем таблица в базата данни с всеки MYSQL клиент. Тук използваме PHPMyadmin клиента и там имаме опция „нова“, за да създадем нова таблица, използвайки екранната снимка по-долу.
В този случай трябва да предоставим името на таблицата като guru_test и ще създадем две полета, emp_id и emp_name.
- Emp_id има тип данни int
- Emp_name има тип данни varchar
Друг вариант е чрез използване на командния ред и преминаване към директорията 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“.


