اتصال قاعدة بيانات JSP
⚡ ملخص ذكي
تتيح خاصية ربط قاعدة بيانات JSP لتطبيقات الويب تخزين وإدارة كميات كبيرة من البيانات عن طريق ربط صفحات JSP بقاعدة بيانات علائقية. يشرح هذا المورد كيفية إنشاء MySQL جدول، إدراج سجلات، وتنفيذ عمليات التحديد والإدراج والتحديث والحذف باستخدام علامات JSTL SQL.

الاتصال بقاعدة البيانات في JSP
تُستخدم قاعدة البيانات لتخزين أنواع مختلفة من البيانات الضخمة التي تصل سعتها التخزينية إلى عدة غيغابايت. ويمكن لـ JSP الاتصال بقواعد البيانات هذه لإنشاء السجلات وإدارتها.
في هذا البرنامج التعليمي، سوف نتعلم كيفية إنشاء جدول في قاعدة البيانات، وكيفية إنشاء السجلات في هذه الجداول من خلال JSP.
اصنع جدول
In قاعدة بيانات MYSQLيمكننا إنشاء جدول في قاعدة البيانات باستخدام أي عميل MySQL. هنا نستخدم عميل PHPMyAdmin، ولدينا خيار "جديد" لإنشاء جدول جديد كما هو موضح في لقطة الشاشة أدناه.
في هذا، علينا أن نحدد اسم الجدول كـ guru_test، وسنقوم بإنشاء حقلين، emp_id و emp_name.
- نوع بيانات Emp_id هو عدد صحيح (int)
- نوع بيانات Emp_name هو varchar
خيار آخر هو استخدام موجه الأوامر والانتقال إلى دليل 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، يمكننا إجراء عمليات متعددة على قاعدة البيانات. يمكننا إدراج السجلات، وكذلك حذف السجلات غير المطلوبة. إذا احتجنا إلى تعديل أي سجل، فيمكننا القيام بذلك باستخدام عملية التحديث. ستساعدنا عملية التحديد في استرجاع السجلات المطلوبة.
اختر
يتم استخدام عملية التحديد لتحديد السجلات من الجدول.
على سبيل المثال:
في هذا المثال، سنتعرف على عملية التحديد لجلب السجلات من جدول 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 مكتبات جافا.
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: نقوم بطباعة الناتج الخاص بمعرف الموظف واسم الموظف، والتي يتم جلبها من نتائج الاستعلام، وباستخدام حلقة 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قاعدة بيانات تجريبية. السجلات المُدرجة هي: رقم الموظف – 3 واسم الموظف – الموظف هـmp3سيتم إدراج هذه السجلات في الجدول. عند تنفيذ الكود، تُدرج السجلات في جدول guru_test، بقيمة 3 وموظف emp3.
ملاحظة: هنا لا نعرض الناتج لأننا نقوم فقط بإدراج السجل في الجدول. يمكننا الحصول على السجل باستخدام استعلام التحديد كالتالي: '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 كمعرّف الموظف، فهذا يعني أن استعلام الحذف قد فشل؛ وإلا فقد تم حذف السجل بنجاح.
تحديث
يتم استخدام التحديث لتحرير السجلات الموجودة في الجدول.
على سبيل المثال:
<%@ 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.
الإخراج:
عند تنفيذ الكود أعلاه، يتم تغيير السجل الذي يحمل رقم الموظف 2 إلى 99. لذلك، سيظهر الناتج الآن الموظف "guru99" بدلاً من الموظف "guru2".


