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.

  • ๐Ÿ—„๏ธ Formรฅl: Databaser lagrer gigabyte med data som JSP kan opprette, lese og administrere.
  • ๐Ÿงฑ Opprett tabell: Bygg en guru_test-tabell med emp_id og emp_name ved hjelp av en MySQL klient eller spรธrsmรฅl.
  • ๐Ÿ”Œ Tilkobling: sql:setDataSource-taggen leverer JDBC-driveren, URL, bruker og passord.
  • ๐Ÿ” ULIK Operatjoner: Velg, Sett inn, Oppdater og Slett kjรธres via JSTL SQL-tagger.
  • ๐Ÿ”‘ Parametere: Bruk sql:param og en primรฆrnรธkkel, for eksempel emp_id, for รฅ mรฅlrette bestemte poster.

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

Opprett tabell i JSP-databasen

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

Opprett tabell i JSP-databasen

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ยป.

Spรธrsmรฅl og svar

Ja. AI-assistenter kan generere JSTL SQL-tagger eller JDBC-kode for รฅ koble JSP til MySQL, bygge spรธrringer og kartlegge resultatrader. Du bรธr fortsatt bekrefte driveren, URLog pรฅloggingsinformasjon fรธr kjรธring.

Ja. AI-verktรธy kan flagge strengsammenkoblede spรธrringer og foreslรฅ parameteriserte spรธrringer eller forberedte setninger. Dette reduserer risikoen for SQL-injeksjon, men manuell sikkerhetsgjennomgang av alle databaseinndata anbefales fortsatt.

JDBC (Java Database Connectivity) er API-et som lar Java og JSP-applikasjoner kobler seg til en database. Den laster inn en driver som com.mysql.jdbc.Driver og kjรธrer SQL-setninger over tilkoblingen.

Nei. JSTL SQL-taggene passer til lรฆring og prototyper. For produksjon hรธrer databaselogikk hjemme i servlets, DAO-er eller et rammeverk, kee.ping JSP fokuserte pรฅ presentasjon snarere enn direkte spรธrringer.

Oppsummer dette innlegget med: