Σύνδεση βάσης δεδομένων JSP

⚡ Έξυπνη Σύνοψη

Η σύνδεση βάσης δεδομένων JSP επιτρέπει σε μια διαδικτυακή εφαρμογή να αποθηκεύει και να διαχειρίζεται μεγάλους όγκους δεδομένων συνδέοντας σελίδες JSP με μια σχεσιακή βάση δεδομένων. Αυτός ο πόρος εξηγεί πώς να δημιουργήσετε μια MySQL πίνακα, εισαγωγή εγγραφών και εκτέλεση λειτουργιών Επιλογής, Εισαγωγής, Ενημέρωσης και Διαγραφής χρησιμοποιώντας ετικέτες JSTL sql.

  • 🗄️ Σκοπός: Οι βάσεις δεδομένων αποθηκεύουν gigabytes δεδομένων που μπορούν να δημιουργήσουν, να διαβάσουν και να διαχειριστούν οι JSP.
  • 🧱 Δημιουργία πίνακα: Δημιουργήστε έναν πίνακα guru_test με emp_id και emp_name χρησιμοποιώντας ένα MySQL πελάτης ή προτροπή.
  • 🔌 Σύνδεση: Η ετικέτα sql:setDataSource παρέχει το πρόγραμμα οδήγησης JDBC, URL, χρήστης και κωδικός πρόσβασης.
  • 🔁 ΘΕΡΜΟΣ Operations: Οι επιλογές Select, Insert, Update και Delete εκτελούνται μέσω ετικετών JSTL sql.
  • 🔑 παράμετροι: Χρησιμοποιήστε την εντολή sql:param και ένα πρωτεύον κλειδί, όπως το emp_id, για να στοχεύσετε συγκεκριμένες εγγραφές.

Σύνδεση βάσης δεδομένων JSP

Σύνδεση με βάση δεδομένων στο JSP

Η βάση δεδομένων χρησιμοποιείται για την αποθήκευση διαφόρων τύπων δεδομένων, τα οποία είναι τεράστια και έχουν χωρητικότητα αποθήκευσης σε gigabyte. Το JSP μπορεί να συνδεθεί με τέτοιες βάσεις δεδομένων για τη δημιουργία και τη διαχείριση εγγραφών.

Σε αυτό το σεμινάριο, θα μάθουμε πώς να δημιουργήσετε έναν πίνακα στη βάση δεδομένων και πώς να δημιουργήσετε εγγραφές σε αυτούς τους πίνακες μέσω του JSP.

Δημιουργία πίνακα

In Βάση δεδομένων MYSQL, μπορούμε να δημιουργήσουμε έναν πίνακα στη βάση δεδομένων με οποιοδήποτε πρόγραμμα-πελάτη MYSQL. Εδώ χρησιμοποιούμε το πρόγραμμα-πελάτη PHPMyadmin και εκεί έχουμε την επιλογή "νέο" για να δημιουργήσουμε έναν νέο πίνακα χρησιμοποιώντας το παρακάτω στιγμιότυπο οθόνης.

Δημιουργία πίνακα στη βάση δεδομένων JSP

Σε αυτό, πρέπει να δώσουμε το όνομα του πίνακα ως guru_test και θα δημιουργήσουμε δύο πεδία, emp_id και emp_name.

  • Το Emp_id έχει τύπο δεδομένων ως int
  • Το Emp_name έχει τύπο δεδομένων ως varchar

Δημιουργία πίνακα στη βάση δεδομένων JSP

Μια άλλη επιλογή είναι να χρησιμοποιήσετε τη γραμμή εντολών και να μεταβείτε στον κατάλογο MYSQL:

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

Μπορούμε να συνδεθούμε στη βάση δεδομένων ως εξής:

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

Δημιουργήστε τον πίνακα guru_test στη βάση δεδομένων με το όνομα GuruΔοκιμάστε ως εξής στην προτροπή MYSQL:

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)

Αρχικά, οι εγγραφές εισάγονται χρησιμοποιώντας το INSERT ερώτημα, και στη συνέχεια μπορούμε να χρησιμοποιήσουμε το SELECT ερώτημα για να ελέγξετε εάν ο πίνακας έχει δημιουργηθεί ή όχι.

Δημιουργία Εγγραφών

Αφού δημιουργήσουμε έναν πίνακα, πρέπει να δημιουργήσουμε εγγραφές στον πίνακα guru_test χρησιμοποιώντας το ερώτημα εισαγωγής, το οποίο φαίνεται παρακάτω:

Οι εγγραφές που εισάγονται εδώ είναι:

  • 1 και γκουρού emp1
  • 2 και γκουρού 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 Operaθέσεις: Εισαγωγή, Ενημέρωση, Διαγραφή, Επιλογή

Χρησιμοποιώντας JSP, μπορούμε να εκτελέσουμε πολλαπλές λειτουργίες στη βάση δεδομένων. Μπορούμε να εισαγάγουμε τις εγγραφές και επίσης να διαγράψουμε τις εγγραφές που δεν είναι απαραίτητες. Εάν κάποια εγγραφή χρειάζεται επεξεργασία, τότε μπορούμε να την κάνουμε χρησιμοποιώντας μια λειτουργία ενημέρωσης. Η λειτουργία Επιλογής θα βοηθήσει στην ανάκτηση των εγγραφών που είναι απαραίτητες.

Αγορά

Η λειτουργία Επιλογή χρησιμοποιείται για την επιλογή των εγγραφών από τον πίνακα.

Παράδειγμα:

Σε αυτό το παράδειγμα, θα μάθουμε για τη λειτουργία επιλογής (select) για την ανάκτηση εγγραφών από τον πίνακα 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="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>

Επεξήγηση του κώδικα:

Code Γραμμή 1: Εδώ εισάγουμε τα io, util και SQL βιβλιοθήκες της java.

Code Γραμμή 3: Εδώ εισάγουμε την βασική βιβλιοθήκη της JSTL και δίνουμε το πρόθεμά της ως c, το οποίο θα βοηθήσει στην εξαγωγή.

Code Γραμμή 4: Εδώ εισάγουμε τη βιβλιοθήκη SQL της JSTL και δίνουμε το πρόθεμά της ως sql, το οποίο θα βοηθήσει στην εκτέλεση των λειτουργιών SQL.

Code Γραμμή 15-17: Εδώ, χρησιμοποιώντας sql, συνδέουμε την πηγή δεδομένων ονομάζοντας τη μεταβλητή ως "snapshot" και το πρόγραμμα οδήγησης ως πρόγραμμα οδήγησης JDBC. Προσθέτουμε επίσης το όνομα χρήστη και τον κωδικό πρόσβασης ως "gururoot" και "guru".

Code Γραμμή 19-21: Εδώ χρησιμοποιούμε το ερώτημα SQL του ερωτήματος επιλογής.

Code Γραμμή 31-32: Εκτυπώνουμε την έξοδο για τα emp id και emp name, τα οποία ανακτώνται από τα αποτελέσματα του ερωτήματος, και χρησιμοποιώντας έναν βρόχο foreach εκτυπώνουμε την έξοδο.

Όταν εκτελέσουμε τον παραπάνω κώδικα, θα λάβουμε την παρακάτω έξοδο:

Παραγωγή:

Εδώ θα ανακτηθούν και οι δύο εγγραφές από τη βάση δεδομένων:

  • 1 γκουρού emp1
  • 2 γκουρού emp2

Κύριο θέμα

Ο τελεστής εισαγωγής χρησιμοποιείται για την εισαγωγή των εγγραφών στο βάσεις δεδομένων.

Παράδειγμα:

Σε αυτό το παράδειγμα, θα μάθουμε για την εισαγωγή εγγραφών στον πίνακα 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>

Επεξήγηση του κώδικα:

Code Γραμμή 19-20: Εδώ εισάγουμε εγγραφές στον πίνακα guru_test του GuruΔοκιμαστική βάση δεδομένων. Οι εγγραφές που εισάγονται είναι: empID – 3 και empname – emp emp3Αυτές οι εγγραφές θα εισαχθούν στον πίνακα. Όταν εκτελείτε τον κώδικα, οι εγγραφές εισάγονται στον πίνακα guru_test, με τιμή 3 και emp e.mp3.

Σημείωση: Εδώ δεν δείχνουμε την έξοδο, καθώς απλώς εισάγουμε την εγγραφή στον πίνακα. Μπορούμε να λάβουμε την εγγραφή χρησιμοποιώντας το ερώτημα επιλογής ως 'select * from guru_test'. Εάν η εγγραφή είχε εισαχθεί, τότε θα λαμβάναμε την τιμή ως 3 και emp3Εάν η εγγραφή δεν εισαχθεί, τότε το 3 δεν θα εμφανίζεται στις εγγραφές του πίνακα.

Διαγραφή

Αυτή είναι η λειτουργία διαγραφής όπου διαγράφουμε τις εγγραφές από τον πίνακα guru_test.

Παράδειγμα:

Εδώ θα χρησιμοποιήσουμε το ερώτημα διαγραφής για να διαγράψουμε την εγγραφή από τον πίνακα guru_test. Η εγγραφή που πρέπει να διαγραφεί πρέπει να οριστεί στη μεταβλητή "guruid" και η αντίστοιχη εγγραφή διαγράφεται από τη βάση δεδομένων.

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

Επεξήγηση του κώδικα:

Code Γραμμή 18: Ορίζουμε μια μεταβλητή guruid της οποίας η τιμή είναι 3, η οποία πρέπει να διαγραφεί από τη βάση δεδομένων. Αυτό είναι πάντα ένα πρωτεύον κλειδί του πίνακα. Σε αυτήν την περίπτωση, το πρωτεύον κλειδί είναι το emp_id.

Code Γραμμή 19-22: Εδώ χρησιμοποιούμε ένα ερώτημα διαγραφής το οποίο ορίζει μια παράμετρο στον όρο where. Εδώ η παράμετρος είναι guruid, η οποία ορίζεται στη γραμμή κώδικα 18. Η αντίστοιχη εγγραφή διαγράφεται.

Παραγωγή:

Όταν εκτελείτε τον παραπάνω κώδικα, η εγγραφή με emp_id ως 3 διαγράφεται.

Σημείωση: Σε αυτό το παράδειγμα, δεν μπορούμε να εμφανίσουμε την έξοδο καθώς διαγράφουμε την εγγραφή από τον πίνακα. Για να ελέγξουμε αν αυτή η εγγραφή έχει διαγραφεί, πρέπει να χρησιμοποιήσουμε το ερώτημα επιλογής "select * from guru_test". Σε αυτήν την περίπτωση, εάν λάβουμε 3 ως emp id, τότε το ερώτημα διαγραφής έχει αποτύχει. Διαφορετικά, η εγγραφή έχει διαγραφεί με επιτυχία.

Ενημέρωση

Η ενημέρωση χρησιμοποιείται για την επεξεργασία των εγγραφών στον πίνακα.

Παράδειγμα:

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

Επεξήγηση του κώδικα:

Code Γραμμή 18: Εδώ ορίζουμε μια μεταβλητή guruid ως 2. Αυτό είναι το αναγνωριστικό όπου θέλουμε να ενημερώσουμε την εγγραφή.

Code Γραμμή 19-22: Εδώ χρησιμοποιούμε ένα ερώτημα ενημέρωσης για να ενημερώσουμε την εγγραφή στον πίνακα guru_test της εγγραφής, ο οποίος έχει οριστεί στο σημείο 18. Εδώ το emp guru2 αντικαθίσταται από το emp guru99.

Παραγωγή:

Όταν εκτελείτε τον παραπάνω κώδικα, η εγγραφή με emp_id 2 αλλάζει σε 99. Έτσι, τώρα η έξοδος θα εμφανίζει emp "guru99" αντί για emp "guru2".

Συχνές Ερωτήσεις

Ναι. Οι βοηθοί τεχνητής νοημοσύνης μπορούν να δημιουργήσουν ετικέτες JSTL sql ή κώδικα JDBC για τη σύνδεση του JSP με MySQL, δημιουργία ερωτημάτων και αντιστοίχιση γραμμών αποτελεσμάτων. Θα πρέπει να επαληθεύσετε το πρόγραμμα οδήγησης, URLκαι διαπιστευτήρια πριν από την εκτέλεση.

Ναι. Τα εργαλεία τεχνητής νοημοσύνης μπορούν να επισημάνουν ερωτήματα που συνδυάζονται με συμβολοσειρές και να προτείνουν παραμετροποιημένα ερωτήματα ή προετοιμασμένες δηλώσεις. Αυτό μειώνει τον κίνδυνο έγχυσης SQL, αν και εξακολουθεί να συνιστάται ο μη αυτόματος έλεγχος ασφαλείας όλων των εισόδων στη βάση δεδομένων.

JDBC (Java (Διεπαφή Βάσης Δεδομένων) είναι το API που επιτρέπει Java και οι εφαρμογές JSP συνδέονται σε μια βάση δεδομένων. Φορτώνει ένα πρόγραμμα οδήγησης όπως το com.mysql.jdbc.Driver και εκτελεί εντολές SQL μέσω της σύνδεσης.

Όχι. Οι ετικέτες sql JSTL είναι κατάλληλες για μάθηση και πρωτότυπα. Για την παραγωγή, η λογική της βάσης δεδομένων ανήκει σε servlets, DAOs ή σε ένα framework, kee.ping Το JSP επικεντρώθηκε στην παρουσίαση και όχι σε άμεσες ερωτήσεις.

Συνοψίστε αυτήν την ανάρτηση με: