JSP adatbázis-kapcsolat

⚡ Okos összefoglaló

A JSP adatbázis-kapcsolat lehetővé teszi a webes alkalmazások számára nagy mennyiségű adat tárolását és kezelését a JSP oldalak relációs adatbázishoz való csatolásával. Ez az erőforrás elmagyarázza, hogyan hozható létre egy MySQL tábla, rekordok beszúrása, valamint Select, Insert, Update és Delete műveletek végrehajtása JSTL SQL címkék használatával.

  • 🗄️ Cél: Az adatbázisok gigabájtnyi adatot tárolnak, amelyeket a JSP képes létrehozni, olvasni és kezelni.
  • 🧱 Táblázat létrehozása: Hozz létre egy guru_test táblát az emp_id és emp_name paraméterekkel egy MySQL kliens vagy prompt.
  • 🔌 Csatlakozás: Az sql:setDataSource tag biztosítja a JDBC illesztőprogramot, URL, felhasználónév és jelszó.
  • 🔁 szifilisz Operafeltételek: A Select, Insert, Update és Delete műveletek JSTL SQL tageken keresztül futnak.
  • 🔑 paraméterek: Az sql:param paraméterrel és egy elsődleges kulcsgal, például az emp_id-vel célozhatsz meg adott rekordokat.

JSP adatbázis-kapcsolat

Csatlakozás az adatbázishoz JSP-ben

Az adatbázis különféle típusú adatok tárolására szolgál, amelyek hatalmasak és gigabájtos tárolókapacitással rendelkeznek. A JSP képes csatlakozni az ilyen adatbázisokhoz a rekordok létrehozása és kezelése érdekében.

Ebben az oktatóanyagban megtanuljuk, hogyan hozhat létre táblát az adatbázisban, és hogyan hozhat létre rekordokat ezekben a táblákban JSP-n keresztül.

Táblázat létrehozása

In MYSQL adatbázis, létrehozhatunk egy táblázatot az adatbázisban bármilyen MYSQL klienssel. Itt a PHPMyadmin klienst használjuk, és ott van egy „new” opció egy új tábla létrehozásához az alábbi képernyőkép segítségével.

Hozzon létre táblázatot a JSP adatbázisban

Ebben meg kell adnunk a tábla nevét guru_testként, és két mezőt fogunk létrehozni, az emp_id-t és az emp_name-t.

  • Az Emp_id adattípusa int.
  • Az Emp_name adattípusa varchar

Hozzon létre táblázatot a JSP adatbázisban

Egy másik lehetőség a parancssor használata és a MYSQL könyvtárba való átváltás:

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

Az adatbázisba a következőképpen tudunk bejelentkezni:

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

Hozz létre egy guru_test táblát az adatbázisban, melynek neve: GuruTeszteld a következőképpen a MYSQL promptban:

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)

Először a rekordokat a következővel illesztik be: INSERT lekérdezést, majd használhatjuk a SELECT lekérdezés annak ellenőrzésére, hogy a tábla létrejött-e vagy sem.

Rekordok létrehozása

Miután létrehoztunk egy táblát, rekordokat kell létrehoznunk a guru_test táblában az alább látható beszúrási lekérdezéssel:

Az ide bevitt rekordok a következők:

  • 1 és guru emp1
  • 2 és guru 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 Operalehetőségek: Beszúrás, Frissítés, Törlés, Kiválasztás

JSP használatával számos műveletet végezhetünk az adatbázisban. Beilleszthetünk rekordokat, és törölhetjük a nem szükséges rekordokat. Ha bármelyik rekordot szerkeszteni kell, akkor ezt egy frissítéssel tehetjük meg. A Select művelet segít a szükséges rekordok lekérésében.

választ

A Select művelet a rekordok táblázatból való kiválasztására szolgál.

Példa:

Ebben a példában a guru_test táblából rekordok lekérésének select műveletét fogjuk megismerni, amelyet a fenti szakaszban hoztam létre.

<%@ 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>

A kód magyarázata:

Code 1 vonal: Itt importáljuk az io, util és SQL Java könyvtárak.

Code 3 vonal: Itt importáljuk a JSTL alapkönyvtárát, és a „c” előtagot adjuk meg, ami segít a kimenet lekérésében.

Code 4 vonal: Itt importáljuk a JSTL SQL könyvtárát, és megadjuk az SQL előtagot, ami segít az SQL műveletek végrehajtásában.

Code 15-17. sor: Itt SQL-t használva összekapcsoljuk az adatforrást a változó „snapshot”-nak, a meghajtót pedig JDBC-meghajtónak nevezzük el. Hozzáadjuk a felhasználónevet és jelszót is „gururoot”-ként és „guru”-ként.

Code 19-21. sor: Itt a kiválasztó lekérdezés SQL lekérdezését használjuk.

Code 31-32. sor: Kinyomtatjuk az emp id és emp name kimenetét, amelyeket a lekérdezés eredményeiből kérdeztünk le, és egy foreach ciklus segítségével kinyomtatjuk a kimenetet.

Amikor végrehajtjuk a fenti kódot, a következő kimenetet kapjuk:

output:

Itt mindkét rekordot lekérjük az adatbázisból:

  • 1 guru emp1
  • 2 guru emp2

betétlap

Az Insert operátorral rekordokat illeszthetünk be a adatbázis.

Példa:

Ebben a példában a rekordok guru_test táblába való beszúrását fogjuk megtanulni.

<%@ 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>

A kód magyarázata:

Code 19-20. sor: Itt rekordokat illesztünk be a guru_test táblába. GuruTesztadatbázis. A beszúrt rekordok a következők: empID – 3 és empname – emp emp3Ezek a rekordok beszúródnak a táblázatba. A kód végrehajtásakor a rekordok a guru_test táblába kerülnek be, 3-as értékkel és e karakterlánccal.mp3.

Jegyzet: Itt nem mutatjuk a kimenetet, mivel csak beszúrjuk a rekordot a táblázatba. A rekordot a 'select * from guru_test' szelektív lekérdezéssel kaphatjuk meg. Ha a rekordot beszúrtuk, akkor a 3-as értéket kaptuk volna, és az e értéket kaptuk volna.mp3Ha a rekord nincs beszúrva, akkor a 3 nem fog megjelenni a táblázat rekordjai között.

Törölni

Ez a törlési művelet, ahol a guru_test táblából töröljük a rekordokat.

Példa:

Itt a törlés lekérdezést fogjuk használni a rekord törléséhez a guru_test táblából. A törlendő rekordot a „guruid” változóban kell beállítani, és a megfelelő rekord törlődik az adatbázisból.

<%@ 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>

A kód magyarázata:

Code 18 vonal: Beállítunk egy guruid változót, melynek értéke 3, amit törölnünk kell az adatbázisból. Ez mindig a tábla elsődleges kulcsa. Ebben az esetben az elsődleges kulcs az emp_id.

Code 19-22. sor: Itt egy törlés lekérdezést használunk, amely egy paramétert állít be a where záradékban. A paraméter a guruid, amelyet a 18. kódsorban állítunk be. A megfelelő rekord törlődik.

output:

A fenti kód végrehajtásakor az emp_id 3-as rekord törlődik.

Jegyzet: Ebben a példában nem tudjuk megjeleníteni a kimenetet, mivel töröljük a rekordot a táblázatból. Annak ellenőrzéséhez, hogy a rekord törölve van-e, a „select * from guru_test” kiválasztó lekérdezést kell használnunk. Ebben az esetben, ha 3-at kapunk üres azonosítóként, akkor a törlési lekérdezés sikertelen volt; ellenkező esetben a rekord törlése sikeresen megtörtént.

Frissítések

A frissítés a táblázat rekordjainak szerkesztésére szolgál.

Példa:

<%@ 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>

A kód magyarázata:

Code 18 vonal: Itt egy változó guruidot állítunk be 2-re. Ez az az azonosító, ahol frissíteni szeretnénk a rekordot.

Code 19-22. sor: Itt egy frissítő lekérdezést használunk a rekord guru_test táblájában lévő rekord frissítésére, amely a 18. pontban van beállítva. Itt az emp guru2 helyére az emp guru99 kerül.

output:

A fenti kód végrehajtásakor az emp_id 2 azonosítójú rekord 99-re változik. Tehát a kimenet most az emp „guru99” értéket fogja mutatni az emp „guru2” helyett.

GYIK

Igen. A mesterséges intelligencia asszisztensek JSTL SQL tageket vagy JDBC kódot generálhatnak a JSP és a JSP összekapcsolásához. MySQL, lekérdezéseket kell létrehozni, és eredménysorokat kell leképezni. Továbbra is ellenőrizni kell az illesztőprogramot, URLés a hitelesítő adatokat a futtatás előtt.

Igen. A mesterséges intelligencia eszközei képesek megjelölni a karakterláncokból összefűzött lekérdezéseket, és paraméterezett lekérdezéseket vagy előkészített utasításokat javasolni. Ez csökkenti az SQL-befecskendezés kockázatát, bár továbbra is ajánlott az összes adatbázis-bemenet manuális biztonsági felülvizsgálata.

JDBC (Java Az Adatbázis-kapcsolat (ADABÁZIS-Kapcsolat) egy API, amely lehetővé teszi Java és a JSP alkalmazások adatbázishoz csatlakoznak. Betölt egy illesztőprogramot, például a com.mysql.jdbc.Driver fájlt, és SQL utasításokat futtat a kapcsolaton keresztül.

Nem. A JSTL SQL tagek tanuláshoz és prototípusokhoz illeszkednek. Éles környezetben az adatbázis-logika szervletekbe, DAO-kba vagy egy keretrendszerbe tartozik, keeping A JSP a megjelenítésre összpontosított, nem pedig a közvetlen lekérdezésekre.

Foglald össze ezt a bejegyzést a következőképpen: