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.

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.
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
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.


