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 tabell guru_testin databasen kalt GuruTestas 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:
Kodelinje 1: Her importerer vi io, uti og SQL biblioteker i java.
Kodelinje 3: Her importerer vi kjernebiblioteket til JSTL og gir prefikset som gurucore som vil bidra til å få utdata.
Kodelinje 4: Her importerer vi SQL-biblioteket til jstl og gir prefikset som gurusql som vil hjelpe til med å utføre SQL-operasjonene.
Kodelinje 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".
Kodelinje 19-21: Her bruker vi SQL-spørring av utvalgsspørringen.
Kodelinje 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:
Kodelinje 19-20: Her setter vi inn poster i tabellen guru_test i GuruTestdatabase. Postene som er satt inn er: empID – 3 og empname – emp emp3. Disse postene vil bli satt inn i tabellen Når du kjører koden, blir postene satt inn i tabellen som guru_test , med verdi 3 og emp emp3.
OBS: Her viser vi ikke utdata, da vi bare setter inn posten i tabellen. Vi kan få posten ved å bruke select-query som 'select * from guru_test'. Hvis posten ble satt inn da, ville vi fått verdien som 3 og emp3. Hvis posten ikke er satt inn da, vil ikke 3 vises i poster 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:
Kodelinje 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.
Kodelinje 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:
Kodelinje 18: Her setter vi en variabel guruid som 2. Dette er IDen der vi ønsker å oppdatere posten.
Kodelinje 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.