JSP-tietokantayhteys

⚡ Älykäs yhteenveto

JSP-tietokantayhteyden avulla verkkosovellus voi tallentaa ja hallita suuria tietomääriä linkittämällä JSP-sivuja relaatiotietokantaan. Tässä resurssissa selitetään, miten luodaan MySQL taulukkoon, lisää tietueita ja suorita valinta-, lisäys-, päivitys- ja poistotoimintoja JSTL SQL -tunnisteiden avulla.

  • 🗄️ Tarkoitus: Tietokannat tallentavat gigatavuja dataa, jota JSP voi luoda, lukea ja hallita.
  • 🧱 Luo taulukko: Luo guru_test-taulukko emp_id:llä ja emp_name:llä käyttäen MySQL asiakas tai kehote.
  • 🔌 Liitäntä: sql:setDataSource-tagi toimittaa JDBC-ajurin, URL, käyttäjätunnus ja salasana.
  • 🔁 lika OperaTIONS: Valitse, Lisää, Päivitä ja Poista suoritetaan JSTL SQL -tagien avulla.
  • 🔑 parametrit: Käytä sql:param-muuttujaa ja ensisijaista avainta, kuten emp_id, kohdistaaksesi tiettyihin tietueisiin.

JSP-tietokantayhteys

Yhdistetään JSP:n tietokantaan

Tietokantaa käytetään erityyppisten, valtavien ja gigatavujen tallennuskapasiteettia omaavien tietojen tallentamiseen. JSP voi muodostaa yhteyden tällaisiin tietokantoihin tietueiden luomiseksi ja hallitsemiseksi.

Tässä opetusohjelmassa opimme luomaan taulukko tietokantaan ja kuinka luodaan tietueita näihin taulukoihin JSP:n kautta.

Luo taulukko

In MYSQL-tietokanta, voimme luoda taulukon tietokantaan millä tahansa MYSQL-asiakasohjelmalla. Tässä käytämme PHPMyadmin-asiakasohjelmaa, ja siellä meillä on vaihtoehto "uusi" uuden taulukon luomiseksi alla olevan kuvakaappauksen avulla.

Luo taulukko JSP-tietokannassa

Tässä meidän on annettava taulukon nimi muodossa guru_test, ja luomme kaksi kenttää, emp_id ja emp_name.

  • Emp_id:n tietotyyppi on int
  • Työntekijän_nimen tietotyyppi on varchar

Luo taulukko JSP-tietokannassa

Toinen vaihtoehto on käyttää komentokehotetta ja siirtyä MYSQL-hakemistoon:

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

Voimme kirjautua tietokantaan seuraavasti:

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

Luo tietokantaan taulukko guru_test, jonka nimi on GuruTestaa seuraavasti MYSQL-kehotteessa:

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)

Ensin tietueet lisätään käyttämällä INSERT kyselyä, ja sitten voimme käyttää SELECT kysely tarkistaaksesi, onko taulukko luotu vai ei.

Luo tietueita

Taulukon luomisen jälkeen meidän on luotava tietueita guru_test-taulukkoon käyttämällä alla olevaa lisäyskyselyä:

Tänne syötetyt tietueet ovat:

  • 1 ja guru emp1
  • 2 ja 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 Operavaihtoehdot: Lisää, Päivitä, Poista, Valitse

JSP:n avulla voimme suorittaa useita toimintoja tietokannassa. Voimme lisätä tietueita ja poistaa tarpeettomia tietueita. Jos jotakin tietuetta on muokattava, voimme tehdä sen update-komennolla. Select-operaatio auttaa hakemaan tarvittavat tietueet.

valita

Valitse-toimintoa käytetään tietueiden valitsemiseen taulukosta.

Esimerkiksi:

Tässä esimerkissä tutustumme valintaoperaatioon, jolla noudetaan tietueita guru_test-taulukosta, joka luotiin edellisessä osiossa.

<%@ 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>

Koodin selitys:

Code Rivi 1: Tässä tuomme io:n, util:n ja SQL javan kirjastot.

Code Rivi 3: Tässä tuomme JSTL:n ydinkirjaston ja annamme sen etuliitteeksi c, mikä auttaa tulosteen saamisessa.

Code Rivi 4: Tässä tuomme JSTL:n SQL-kirjaston ja annamme sen etuliitteeksi sql, mikä auttaa SQL-operaatioiden suorittamisessa.

Code Rivi 15–17: Tässä SQL:ää käyttäen yhdistämme tietolähteen nimeämällä muuttujan nimellä "snapshot" ja ajurin JDBC-ajuriksi. Lisäämme myös käyttäjätunnuksen ja salasanan muodossa "gururoot" ja "guru".

Code Rivi 19–21: Tässä käytämme valintakyselyn SQL-kyselyä.

Code Rivi 31–32: Tulostamme kyselyn tuloksista haetut emp id- ja emp name -arvot ja foreach-silmukan avulla tulostamme tuloksen.

Kun suoritat yllä olevan koodin, saamme seuraavanlaisen tulosteen:

lähtö:

Tässä molemmat tietueet noudetaan tietokannasta:

  • 1 guru emp1
  • 2 guru emp2

liite

Insert-operaattoria käytetään tietueiden lisäämiseen tietokanta.

Esimerkiksi:

Tässä esimerkissä opimme lisäämään tietueita guru_test-taulukkoon.

<%@ 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>

Koodin selitys:

Code Rivi 19–20: Tässä lisäämme tietueita taulukon guru_test-taulukkoon. GuruTestitietokanta. Lisätyt tietueet ovat: empID – 3 ja empname – emp emp3Nämä tietueet lisätään taulukkoon. Kun suoritat koodin, tietueet lisätään taulukkoon guru_test arvolla 3 ja emp e:llä.mp3.

Huomautus: Tässä emme näytä tulosta, koska vain lisäämme tietueen taulukkoon. Voimme saada tietueen käyttämällä valintakyselyä 'select * from guru_test'. Jos tietue lisättäisiin, saisimme arvon 3 ja emp3Jos tietuetta ei lisätä, lukua 3 ei näy taulukon tietueissa.

Poista

Tämä on poistooperaatio, jossa poistamme tietueet guru_test-taulukosta.

Esimerkiksi:

Tässä käytämme poistokyselyä poistaaksemme tietueen guru_test-taulukosta. Poistettava tietue asetetaan muuttujaan ”guruid”, ja vastaava tietue poistetaan tietokannasta.

<%@ 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>

Koodin selitys:

Code Rivi 18: Asetamme muuttujan guruidin, jonka arvo on 3, joka on poistettava tietokannasta. Tämä on aina taulukon ensisijainen avain. Tässä tapauksessa ensisijainen avain on emp_id.

Code Rivi 19–22: Tässä käytämme poistokyselyä, joka asettaa parametrin where-lausekkeeseen. Tässä parametri on guruid, joka asetetaan koodirivillä 18. Vastaava tietue poistetaan.

lähtö:

Kun suoritat yllä olevan koodin, tietue, jonka emp_id on 3, poistetaan.

Huomautus: Tässä esimerkissä emme voi näyttää tulostetta, koska poistamme tietueen taulukosta. Tarkistaaksemme, onko tietue poistettu, meidän on käytettävä valintakyselyä ”select * from guru_test”. Jos emp-tunnukseksi saadaan 3, poistokysely on epäonnistunut; muussa tapauksessa tietue on poistettu onnistuneesti.

Päivitykset

Päivitystä käytetään taulukon tietueiden muokkaamiseen.

Esimerkiksi:

<%@ 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>

Koodin selitys:

Code Rivi 18: Tässä asetamme muuttujan guruidiksi 2. Tämä on tunnus, johon haluamme päivittää tietueen.

Code Rivi 19–22: Tässä käytämme päivityskyselyä päivittääksemme tietueen guru_test-taulukossa olevaa tietuetta, joka on asetettu kohtaan 18. Tässä emp guru2 korvataan tietueella emp guru99.

lähtö:

Kun suoritat yllä olevan koodin, tietue, jonka emp_id on 2, muuttuu arvoon 99. Joten nyt tulosteessa näkyy emp “guru99” emp “guru2”:n sijaan.

UKK

Kyllä. Tekoälyavustajat voivat luoda JSTL SQL -tageja tai JDBC-koodia JSP:n yhdistämiseksi MySQL, muodostaa kyselyitä ja yhdistää tulosrivit. Sinun on silti tarkistettava ajuri, URLja tunnistetiedot ennen suorittamista.

Kyllä. Tekoälytyökalut voivat merkitä merkkijonoista koostuvia kyselyitä ja ehdottaa parametrisoituja kyselyitä tai valmiita lauseita. Tämä vähentää SQL-injektioriskiä, ​​vaikka kaikkien tietokannan syötteiden manuaalinen tietoturvatarkistus on edelleen suositeltavaa.

JDBC (Java Tietokantayhteydet) on API, jonka avulla Java ja JSP-sovellukset muodostavat yhteyden tietokantaan. Se lataa ajurin, kuten com.mysql.jdbc.Driver, ja suorittaa SQL-lauseita yhteyden kautta.

Ei. JSTL SQL -tunnisteet sopivat oppimiseen ja prototyyppeihin. Tuotannossa tietokannan logiikka kuuluu servletteihin, DAO-järjestelmiin tai kehykseen.ping JSP keskittyi esitykseen suorien kyselyiden sijaan.

Tiivistä tämä viesti seuraavasti: