JSP-databaseforbindelse

⚡ Smart opsummering

JSP Database Connection gør det muligt for en webapplikation at gemme og administrere store mængder data ved at linke JSP-sider til en relationsdatabase. Denne ressource forklarer, hvordan man opretter en MySQL tabel, indsæt poster og udfør vælg-, indsæt-, opdater- og slet-operationer ved hjælp af JSTL SQL-tags.

  • 🗄️ Formål: Databaser lagrer gigabyte af data, som JSP kan oprette, læse og administrere.
  • 🧱 Opret tabel: Byg en guru_test-tabel med emp_id og emp_name ved hjælp af en MySQL klient eller prompt.
  • 🔌 Forbindelse: sql:setDataSource-tagget leverer JDBC-driveren, URL, bruger og adgangskode.
  • 🔁 URIGT Operationer: Vælg, Indsæt, Opdater og Slet køres via JSTL SQL-tags.
  • 🔑 Parametre: Brug sql:param og en primærnøgle, f.eks. emp_id, til at målrette mod bestemte poster.

JSP-databaseforbindelse

Opretter forbindelse til database i JSP

Databasen bruges til at lagre forskellige typer data, som er enorme og har en lagringskapacitet i gigabyte. JSP kan oprette forbindelse til sådanne databaser for at oprette og administrere poster.

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 PHPMyadmin-klienten, og der har vi en "ny" mulighed for at oprette en ny tabel ved hjælp af nedenstående skærmbillede.

Opret tabel i JSP-databasen

I denne skal vi angive tabelnavnet som guru_test, og vi opretter to felter, emp_id og emp_name.

  • Emp_id har datatypen int
  • Emp_name har datatypen varchar

Opret tabel i JSP-databasen

En anden mulighed er at bruge kommandoprompten og skifte til MYSQL-mappen:

C:\>
C:\>cd Program Files\MY SQL\bin
C:\>Program Files\MySql\bin>

Vi kan logge ind i databasen på følgende måde:

C:\Program Files\MYSQL\bin>mysql –u gururoot –p
Enter Password: *******
Mysql>

Opret tabellen guru_test i databasen med navnet GuruTest som følger på MYSQL-prompten:

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 indsættes posterne ved hjælp af 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ørgslen, 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 poster, og vi kan også slette poster, der ikke er nødvendige. Hvis en post skal redigeres, kan vi gøre det ved hjælp af en opdatering. Select-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 select-operationen til 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:

Code Linje 1: Her importerer vi io, util og SQL biblioteker i java.

Code Linje 3: Her importerer vi kernebiblioteket i JSTL og giver dets præfiks som c, hvilket vil hjælpe med at få output.

Code Linje 4: Her importerer vi SQL-biblioteket fra JSTL og angiver dets præfiks som sql, hvilket vil hjælpe med at udføre SQL-operationerne.

Code Linje 15-17: Her bruger vi SQL til at forbinde datakilden ved at navngive variablen som "snapshot" og driveren som en JDBC-driver. Vi tilføjer også brugernavn og adgangskode som "gururoot" og "guru".

Code Linje 19-21: Her bruger vi SQL-forespørgslen fra select-forespørgslen.

Code Linje 31-32: Vi udskriver outputtet for emp-id og emp-navn, som hentes fra resultaterne af forespørgslen, og ved hjælp af en foreach-løkke udskriver vi outputtet.

Når du udfører ovenstående kode, får vi outputtet som følger:

Output:

Her hentes begge poster fra databasen:

  • 1 guru emp1
  • 2 guru emp2

indsatte

Indsæt-operatoren bruges til at indsætte poster i database.

Eksempel:

I dette eksempel skal vi lære om at indsætte poster 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:

Code Linje 19-20: Her indsætter vi poster i tabellen guru_test for GuruTestdatabase. De indsatte poster er: empID – 3 og empname – emp emp3Disse poster vil blive indsat i tabellen. Når du udfører koden, indsættes posterne i tabellen guru_test med værdien 3 og emp e.mp3.

Bemærk: Her viser vi ikke outputtet, da vi blot indsætter posten i tabellen. Vi kan hente posten ved hjælp af select-forespørgslen som 'select * from guru_test'. Hvis posten blev indsat, ville vi få værdien 3 og e.mp3Hvis posten ikke indsættes, vil 3 ikke blive vist i posterne i tabellen.

Slette

Dette er sletteoperationen, hvor vi sletter posterne fra tabellen guru_test.

Eksempel:

Her bruger vi sletteforespørgslen til at slette posten fra tabellen guru_test. Den post, der skal slettes, skal sættes i variablen "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:

Code Linje 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.

Code Linje 19-22: Her bruger vi en sletteforespørgsel, der sætter en parameter i where-klausulen. Her er parameteren guruid, som er angivet 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 outputtet, da vi sletter posten fra tabellen. For at kontrollere, om posten er slettet, skal vi bruge select-forespørgslen "select * from guru_test". I så fald, hvis vi får 3 som emp-id, er sletteforespørgslen mislykkedes; 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:

Code Linje 18: Her sætter vi en variabel guruid som 2. Dette er ID'et, hvor vi ønsker at opdatere posten.

Code Linje 19-22: Her bruger vi en opdateringsforespørgsel til at opdatere posten i tabellen guru_test for posten, som er angivet i punkt 18. Her erstattes emp guru2 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”.

Ofte Stillede Spørgsmål

Ja. AI-assistenter kan generere JSTL SQL-tags eller JDBC-kode til at forbinde JSP til MySQL, opbygge forespørgsler og kortlægge resultatrækker. Du bør stadig verificere driveren, URLog legitimationsoplysninger før kørsel.

Ja. AI-værktøjer kan markere strengsammenkædede forespørgsler og foreslå parametriserede forespørgsler eller forberedte sætninger. Dette reducerer risikoen for SQL-injektion, selvom manuel sikkerhedsgennemgang af alle databaseinput stadig anbefales.

JDBC (Java Database Connectivity) er den API, der tillader Java og JSP-applikationer opretter forbindelse til en database. Den indlæser en driver som f.eks. com.mysql.jdbc.Driver og kører SQL-sætninger over forbindelsen.

Nej. JSTL SQL-tags er velegnede til læring og prototyper. Til produktion hører databaselogik hjemme i servlets, DAO'er eller et framework, kee.ping JSP fokuserede på præsentation snarere end direkte forespørgsler.

Opsummer dette indlæg med: