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ájtban vannak tárolva. A JSP csatlakozhat ilyen adatbázisokhoz a rekordok létrehozásához és kezeléséhez.
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, bármelyik MYSQL klienssel létrehozhatunk táblázatot az adatbázisban. Itt a PHPMyadminclient-et használjuk, és van egy „új” lehetőségünk egy új táblázat létrehozására az alábbi képernyőkép segítségével.
Ebben meg kell adnunk a tábla nevét guru_test-ként, és létrehozunk két mezőt: emp_id és emp_name.
Az Emp_idis, amelynek adattípusa int
Az Emp_name adattípusa varchar
Egy másik lehetőség a parancssor használata és a MYSQL-könyvtár módosítása:
C:\> C:\>cd Program Files\MY SQL\bin C:\>Program Files\MySql\bin>
Az adatbázisba az alábbiak szerint tudunk bejelentkezni:
C:\Program Files\MYSQL\bin>mysql –u gururoot –p Enter Password: ******* Mysql>
Hozzon létre guru_test táblát a GuruTestas nevű adatbázisban a következőképpen a MYSQL promptban:
Mysql> use GuruTest;
MySql> create table guru_test(
Emp_idint NOT NULL,
Emp_namevarchar(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 segítségével illesztjük be INSERT lekérdezni, majd használhatjuk SELECT lekérdezés annak ellenőrzésére, hogy a tábla létrejött-e vagy sem.
Rekordok létrehozása
A tábla létrehozása után rekordokat kell létrehoznunk a guru_test táblába az insert query segítségével, amely alább látható:
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
A JSP használatával több műveletet is elvégezhetünk az adatbázisban. Beilleszthetjük a rekordokat, illetve törölhetjük a nem szükséges rekordokat. Ha valamelyik rekordot szerkeszteni kell, akkor frissítéssel megtehetjük. 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 rekordok lekérésének kiválasztási műveletét fogjuk megismerni a fenti részben létrehozott guru_test táblábó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="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:
1. kódsor: Itt importálunk io, uti és SQL Java könyvtárak.
3. kódsor: Itt importáljuk a JSTL törzskönyvtárát, és az előtagot gurucore-ként adjuk meg, amely segít a kimenet megszerzésében.
4. kódsor: Itt importáljuk a jstl SQL-könyvtárát, és az előtagját gurusql-ként adjuk meg, amely segít az SQL-műveletek elvégzésében.
15-17. kódsor: Itt a gurusql használatával az adatforrást úgy kapcsoljuk össze, hogy a változót „guru”-nak nevezzük el, az illesztőprogramot pedig JDBC-illesztőprogramnak. Felhasználónév és jelszó hozzáadása a „gururoot” és a „guru” szavakkal.
19-21. kódsor: Itt a kiválasztási lekérdezés SQL lekérdezését használjuk.
31-32. kódsor: Kinyomtatjuk az emp id és emp name kimenetét, amelyeket a lekérdezés eredményeiből kérünk le, és a foreach ciklus használatával kinyomtatjuk a kimenetet.
Amikor végrehajtja a fenti kódot, a kimenetet az alábbiak szerint kapjuk meg;
output:
Itt mindkét rekord lekérésre kerül az adatbázisból
1 guru emp1
2 guru emp2
betétlap
Az Insert operátor a rekordok beszúrására szolgál adatbázis.
Példa:
Ebben a példában a rekordok beszúrását a guru_test táblába 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:
19-20. kódsor: Itt rekordokat szúrunk be a GuruTestadatbázis guru_test táblájába. A beillesztett rekordok: empID – 3 és empname – emp emp3. Ezek a rekordok bekerülnek a táblába. Amikor végrehajtja a kódot, a rekordok guru_test néven kerülnek be a táblába, 3-as értékkel és emp emp3-mal.
Jegyzet: Itt nem a kimenetet jelenítjük meg, mivel csak beszúrjuk a rekordot a táblázatba. A rekordot a select query használatával kaphatjuk meg, mint 'select * from guru_test'. Ha a rekordot akkor illesztjük be, akkor az értéket 3 és emp3 formában kapjuk. Ha a rekord nincs beszúrva, akkor a 3 nem jelenik meg a táblázat rekordjaiban.
Törölni
Ez egy törlési művelet, ahol a rekordokat töröljük a guru_test táblából.
Példa:
Itt töröljük a lekérdezést a rekord törlésére a guru_test táblából. A törölni kívánt 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:
18. kódsor: 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.
19-22. kódsor: Itt egy törlési lekérdezést használunk, amely paramétert állít be a where záradékban. Itt a guruid paraméter a 18-as kódsorban van beállítva. 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 a rekordot töröljük a táblából. Annak ellenőrzéséhez, hogy a rekord törölve van-e, a „select * from guru_test” lekérdezést kell használnunk. Ebben az esetben, ha 3-at kapunk emp id-ként, akkor a törlési lekérdezés meghiúsult, különben a rekord sikeresen törölve lett.
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:
18. kódsor: Itt egy változó guruidot állítunk be 2-re. Ez az az azonosító, ahol frissíteni szeretnénk a rekordot.
19-22. kódsor: Itt egy frissítési lekérdezéssel frissítjük a rekordot a rekord guru_test táblájában, amely a 18. pontban van beállítva. Itt az emp guru2 helyére az emp guru99 lép.
output:
A fenti kód végrehajtásakor az emp_id 2 rekord 99-re módosul. Tehát most a kimeneten az emp "guru99" lesz látható az emp "guru2" helyett.
Összegzésként
Ebben az oktatóanyagban a JSP-nek az adatbázishoz való csatlakoztatásáról és az adatbázis-hozzáférésről tanultunk. Ezenkívül megtudtuk az adatbázisban lévő táblán végrehajtott különféle műveleteket, mint például a létrehozás, törlés, frissítés stb.


