JSP-databasetilkobling
โก Smart oppsummering
JSP Database Connection lar et webprogram lagre og administrere store datamengder ved รฅ koble JSP-sider til en relasjonsdatabase. Denne ressursen forklarer hvordan du oppretter en MySQL tabell, sette inn poster og utfรธre valg-, innsettings-, oppdater- og slettingsoperasjoner ved hjelp av JSTL SQL-tagger.
Kobler til database i JSP
Databasen brukes til รฅ lagre ulike typer data som er enorme og har lagringskapasitet i gigabyte. JSP kan koble seg 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 opprette en tabell i databasen med en hvilken som helst MYSQL-klient. Her bruker vi PHPMyadmin-klienten, og der har vi et alternativ ยซnyยป for รฅ opprette en ny tabell ved hjelp av skjermbildet nedenfor.
I denne mรฅ vi oppgi tabellnavnet som guru_test, og vi oppretter to felt, emp_id og emp_name.
- Emp_id har datatypen int
- Emp_name har datatypen varchar
Et annet alternativ er รฅ bruke ledeteksten og endre til MYSQL-katalogen:
C:\> C:\>cd Program Files\MY SQL\bin C:\>Program Files\MySql\bin>
Vi kan logge inn i databasen slik:
C:\Program Files\MYSQL\bin>mysql โu gururoot โp Enter Password: ******* Mysql>
Opprett tabellen guru_test i databasen med navnet som GuruTest som fรธlger pรฅ MYSQL-ledeteksten:
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)
Fรธrst settes postene inn ved hjelp av INSERT spรธrringen, og sรฅ kan vi bruke SELECT spรธrring for รฅ sjekke om tabellen er opprettet eller ikke.
Opprett poster
Etter at vi har opprettet en tabell, mรฅ vi opprette poster i guru_test-tabellen ved hjelp av insert-spรธrringen, som vises 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 hjelp av JSP kan vi utfรธre flere operasjoner i databasen. Vi kan sette inn poster, og vi kan ogsรฅ slette poster som ikke er nรธdvendige. Hvis en post mรฅ redigeres, kan vi gjรธre det ved hjelp av en oppdatering. Select-operasjonen vil hjelpe med รฅ hente postene som er nรธdvendige.
Velg
Velg-operasjonen brukes til รฅ velge postene fra tabellen.
Eksempel:
I dette eksemplet skal vi lรฆre om SELECT-operasjonen for รฅ hente poster fra guru_test-tabellen, som ble opprettet i avsnittet 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, util og SQL biblioteker i java.
Code Linje 3: Her importerer vi kjernebiblioteket til JSTL og gir prefikset c, noe som vil bidra til รฅ fรฅ utdata.
Code Linje 4: Her importerer vi SQL-biblioteket til JSTL og gir prefikset sql, noe som vil hjelpe til med รฅ utfรธre SQL-operasjonene.
Code Linje 15-17: Her bruker vi SQL til รฅ koble til datakilden ved รฅ navngi variabelen som ยซsnapshotยป og driveren som en JDBC-driver. Vi legger ogsรฅ til brukernavn og passord som ยซgururootยป og ยซguruยป.
Code Linje 19-21: Her bruker vi SQL-spรธrringen fra utvalgsspรธrringen.
Code Linje 31-32: Vi skriver ut resultatet for ansatt-ID og ansattnavn, som hentes fra resultatene av spรธrringen, og ved hjelp av en foreach-lรธkke skriver vi ut resultatet.
Nรฅr du kjรธrer koden ovenfor, fรฅr vi utdataene som fรธlger:
Utgang:
Her hentes begge postene fra databasen:
- 1 guru emp1
- 2 guru emp2
innfelt
Insert-operatoren 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 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 utvalgsspรธrringen som 'select * from guru_test'. Hvis posten ble satt inn, ville vi fรฅtt verdien 3 og e.mp3Hvis posten ikke settes inn, vil ikke 3 vises i postene i tabellen.
Delete
Dette er sletteoperasjonen der vi sletter postene fra tabellen guru_test.
Eksempel:
Her skal vi bruke slettespรธrringen for รฅ slette posten fra tabellen guru_test. Posten som mรฅ slettes mรฅ settes i variabelen ยซguruidยป, og den tilhรธrende 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-klausulen. Her er parameteren guruid, som er satt i kodelinje 18. Den tilhรธrende 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 resultatet ettersom 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 oppdateringsspรธrring for รฅ oppdatere posten i tabellen guru_test for posten, som er satt i punkt 18. Her erstattes emp guru2 med 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ยป.



