JSP-databasetilkobling
Kobler til database i JSP
Databasen brukes til รฅ lagre ulike typer data som er enorme og har lagringskapasitet i gigabyte. JSP kan koble til slike databaser for รฅ opprette og administrere postene.
I denne opplรฆringen vil vi lรฆre om hvordan du oppretter en tabell i databasen, og hvordan du oppretter poster i disse tabellene gjennom JSP.
Lag tabell
In MYSQL database, kan vi lage en tabell i databasen med en hvilken som helst MYSQL-klient. Her bruker vi PHPMyadminclient, og der har vi et alternativ "ny" for รฅ lage en ny tabell ved รฅ bruke skjermbildet nedenfor.
I dette mรฅ vi oppgi tabellnavn som guru_test, og vi vil lage to felts'emp_id og emp_name.
Emp_idis har datatype som int
Emp_name har datatype som varchar
Et annet alternativ er รฅ bruke ledeteksten og endringer i MYSQL-katalogen:
C:\> C:\>cd Program Files\MY SQL\bin C:\>Program Files\MySql\bin>
Vi kan logge inn i databasen som fรธlger:
C:\Program Files\MYSQL\bin>mysql โu gururoot โp Enter Password: ******* Mysql>
Opprett tabellen guru_test i databasen med navnet som GuruTest fรธlgende pรฅ MYSQL-ledeteksten:
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)
Fรธrst settes postene inn vha INSERT spรธrring og sรฅ kan vi bruke SELECT spรธrring for รฅ sjekke om tabellen er opprettet eller ikke.
Opprett poster
Etter รฅ ha opprettet en tabell, mรฅ vi opprette poster i guru_test-tabellen ved รฅ bruke insert-spรธrring, som er vist nedenfor:
Postene som er lagt inn her er:
- 1 og guru emp1
- 2 og 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 Operasjoner: Sett inn, Oppdater, Slett, Velg
Ved รฅ bruke JSP kan vi gjรธre flere operasjoner inn i databasen. Vi kan sette inn postene, og vi kan ogsรฅ slette postene som ikke er nรธdvendige. Hvis noen post mรฅ redigeres, kan vi gjรธre det ved รฅ bruke en oppdatering. Velg-operasjonen vil hjelpe til med รฅ hente postene som kreves.
Velg
Velg-operasjonen brukes til รฅ velge postene fra tabellen.
Eksempel:
I dette eksemplet skal vi lรฆre om valgoperasjonen for รฅ hente poster fra guru_test-tabellen som ble opprettet i delen ovenfor.
<%@ 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>
Forklaring av koden:
Code Linje 1: Her importerer vi io, uti og SQL biblioteker i java.
Code Linje 3: Her importerer vi kjernebiblioteket til JSTL og gir prefikset som gurucore som vil bidra til รฅ fรฅ utdata.
Code Linje 4: Her importerer vi SQL-biblioteket til jstl og gir prefikset som gurusql som vil hjelpe til med รฅ utfรธre SQL-operasjonene.
Code Linje 15-17: Her ved รฅ bruke gurusql kobler vi sammen datakilde ved รฅ navngi variabel som "guru" og driver som en JDBC-driver. Legger ogsรฅ til brukernavn og passord med "gururoot" og "guru".
Code Linje 19-21: Her bruker vi SQL-spรธrring av utvalgsspรธrringen.
Code Linje 31-32: Vi skriver ut utdataene for emp id og emp name, som hentes fra resultatene av spรธrringen og ved รฅ bruke foreach loop skriver vi ut utdataene.
Nรฅr du utfรธrer koden ovenfor, vil vi fรฅ utdata som nedenfor;
Utgang:
Her vil begge postene bli hentet fra databasen
1 guru emp1
2 guru emp2
innfelt
Insert operator brukes til รฅ sette inn postene i database.
Eksempel:
I dette eksemplet skal vi lรฆre om รฅ sette inn postene i tabellen 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>
Forklaring av koden:
Code Linje 19-20: Her setter vi inn poster i tabellen guru_test til GuruTestdatabase. Postene som er satt inn er: empID โ 3 og empnavn โ emp emp3Disse postene vil bli satt inn i tabellen. Nรฅr du kjรธrer koden, settes postene inn i tabellen som guru_test, med verdien 3 og emp e.mp3.
OBS: Her viser vi ikke resultatet, da vi bare setter inn posten i tabellen. Vi kan hente posten ved รฅ bruke select-spรธrringen som 'select * from guru_test'. Hvis posten ble satt inn da, ville vi fรฅtt verdien 3 og e.mp3Hvis posten ikke settes inn, vil ikke 3 vises i postene i tabellen.
Delete
Dette er sletteoperasjon der vi sletter postene fra tabellen guru_test.
Eksempel:
Her vil vi slette spรธrringen for รฅ slette posten fra tabellen guru_test. Posten som skal slettes mรฅ settes i variabel "guruid", og den tilsvarende posten slettes fra databasen.
<%@ 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>
Forklaring av koden:
Code Linje 18: Vi setter en variabel guruid hvis verdi er 3, som mรฅ slettes fra databasen. Dette er alltid en primรฆrnรธkkel i tabellen. I dette tilfellet er primรฆrnรธkkelen emp_id.
Code Linje 19-22: Her bruker vi en slettespรธrring som setter en parameter i where-leddet. Her er parameteren guruid som settes i kodelinje 18. Den tilsvarende posten slettes.
Utgang:
Nรฅr du utfรธrer koden ovenfor, slettes posten med emp_id som 3.
OBS: I dette eksemplet kan vi ikke vise utdataene da vi sletter posten fra tabellen. For รฅ sjekke om posten er slettet, mรฅ vi bruke utvalgsspรธrringen "select * from guru_test". I sรฅ fall, hvis vi fรฅr 3 som emp id, har slettespรธrringen mislyktes, ellers har posten blitt slettet.
Oppdater
Oppdateringen brukes til รฅ redigere postene i tabellen.
Eksempel:
<%@ 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>
Forklaring av koden:
Code Linje 18: Her setter vi en variabel guruid som 2. Dette er IDen der vi รธnsker รฅ oppdatere posten.
Code Linje 19-22: Her bruker vi en oppdateringsforespรธrsel for รฅ oppdatere posten i tabellen guru_test for posten, som er satt i punkt 18. Her er emp guru2 erstattet av emp guru99
Utgang:
Nรฅr du kjรธrer koden ovenfor endres posten med emp_id 2 til 99. Sรฅ nรฅ vil utdataene vise empโguru99โณ i stedet for emp โguru2โ.
Sammendrag
I denne opplรฆringen lรฆrte vi om รฅ koble JSP til database og databasetilgang. Vi lรฆrte ogsรฅ om ulike operasjoner som utfรธres pรฅ tabellen i databasen, som รฅ opprette, slette, oppdatere, etc.


