JSP-databaseforbindelse
Opretter forbindelse til database i JSP
Databasen bruges til lagring af forskellige typer data, som er enorme og har lagringskapacitet i gigabyte. JSP kan oprette forbindelse til sådanne databaser for at oprette og administrere registreringerne.
I denne vejledning lærer vi om, hvordan man opretter en tabel i databasen, og hvordan man opretter poster i disse tabeller gennem JSP.
Opret tabel
In MYSQL database, kan vi oprette en tabel i databasen med enhver MYSQL-klient. Her bruger vi PHPMyadminclient, og der har vi muligheden "ny" for at oprette en ny tabel ved hjælp af nedenstående skærmbillede.
I dette skal vi angive tabelnavn som guru_test, og vi vil oprette to felter'emp_id og emp_name.
Emp_idis har datatype som int
Emp_name har datatype som varchar
En anden mulighed er ved at bruge kommandoprompt og ændringer til MYSQL-biblioteket:
C:\> C:\>cd Program Files\MY SQL\bin C:\>Program Files\MySql\bin>
Vi kan logge ind på databasen som følger:
C:\Program Files\MYSQL\bin>mysql –u gururoot –p Enter Password: ******* Mysql>
Opret tabel guru_testin databasen navngivet som GuruTestas følgende på MYSQL prompt:
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 indsættes posterne vha INSERT
forespørgsel, og så kan vi bruge SELECT
forespørgsel for at kontrollere, om tabellen er oprettet eller ej.
Opret poster
Efter at have oprettet en tabel, skal vi oprette poster i guru_test-tabellen ved hjælp af insert-forespørgsel, som er vist nedenfor:
De poster, der er indtastet 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 Operationer: Indsæt, Opdater, Slet, Vælg
Ved hjælp af JSP kan vi udføre flere operationer i databasen. Vi kan indsætte posterne, og vi kan også slette de poster, som ikke er nødvendige. Hvis en post skal redigeres, kan vi gøre det ved at bruge en opdatering. Vælg operationen hjælper med at hente de nødvendige poster.
Type
Funktionen Vælg bruges til at vælge posterne fra tabellen.
Eksempel:
I dette eksempel skal vi lære om den valgte operation for at hente poster fra guru_test-tabellen, som blev oprettet i ovenstående afsnit.
<%@ 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 af koden:
Kodelinje 1: Her importerer vi io, uti og SQL biblioteker i java.
Kodelinje 3: Her importerer vi kernebibliotek af JSTL og giver dets præfiks som gurucore, som vil hjælpe med at få output.
Kodelinje 4: Her importerer vi SQL-biblioteket af jstl og giver dets præfiks som gurusql, som vil hjælpe med at udføre SQL-operationerne.
Kodelinje 15-17: Her ved hjælp af gurusql forbinder vi datakilde ved at navngive variabel som "guru" og driver som en JDBC-driver. Tilføjelse af brugernavn og adgangskode med "gururoot" og "guru".
Kodelinje 19-21: Her bruger vi SQL-forespørgsel af udvalgsforespørgslen.
Kodelinje 31-32: Vi udskriver output for emp id og emp navn, som hentes fra resultaterne af forespørgslen, og ved hjælp af foreach loop udskriver vi outputtet.
Når du udfører ovenstående kode, vil vi få output som nedenfor;
Output:
Her vil begge poster blive hentet fra databasen
1 guru emp1
2 guru emp2
indsatte
Indsæt operator bruges til at indsætte posterne i database.
Eksempel:
I dette eksempel skal vi lære at indsætte posterne 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 af koden:
Kodelinje 19-20: Her indsætter vi poster i tabellen guru_test i GuruTestdatabase. De indsatte poster er: empID – 3 og empname – emp emp3. Disse poster vil blive indsat i tabellen Når du udfører koden, indsættes posterne i tabellen som guru_test, med værdi 3 og emp emp3.
Bemærk: Her viser vi ikke output, da vi blot indsætter posten i tabellen. Vi kan få posten ved at bruge select query som 'select * from guru_test'. Hvis posten blev indsat, ville vi få værdien som 3 og emp3. Hvis posten ikke er indsat, vil 3 ikke ses i poster i tabellen.
Slette
Dette er sletteoperation, hvor vi sletter posterne fra tabellen guru_test.
Eksempel:
Her vil vi slette forespørgsel for at slette posten fra tabellen guru_test. Den post, der skal slettes, skal indstilles i variabel "guruid", og den tilsvarende post 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 af koden:
Kodelinje 18: Vi indstiller en variabel guruid, hvis værdi er 3, som skal slettes fra databasen. Dette er altid en primær nøgle i tabellen. I dette tilfælde er den primære nøgle emp_id.
Kodelinje 19-22: Her bruger vi en sletteforespørgsel, som indstiller en parameter i where-klausulen. Her er parameteren guruid som er sat i kodelinje 18. Den tilsvarende post slettes.
Output:
Når du udfører ovenstående kode, slettes posten med emp_id som 3.
Bemærk: I dette eksempel kan vi ikke vise output, da vi sletter posten fra tabellen. For at kontrollere, om denne post er slettet, skal vi bruge den valgte forespørgsel "select * from guru_test". I så fald, hvis vi får 3 som emp id, er sletteforespørgslen mislykket, ellers er posten blevet slettet.
Opdatering
Opdateringen bruges til at redigere posterne 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 af koden:
Kodelinje 18: Her sætter vi en variabel guruid som 2. Dette er ID'et, hvor vi ønsker at opdatere posten.
Kodelinje 19-22: Her bruger vi en opdateringsforespørgsel til at opdatere posten i postens tabel guru_test, som er sat i punkt 18. Her er emp guru2 erstattet af emp guru99
Output:
Når du udfører ovenstående kode, ændres posten med emp_id 2 til 99. Så nu vil outputtet vise emp”guru99″ i stedet for emp “guru2”.
Resumé
I denne øvelse lærte vi at forbinde JSP til database og databaseadgang. Vi lærte også om forskellige operationer, der udføres på bordet i databasen, såsom oprettelse, sletning, opdatering osv.