English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

اتصال قاعدة بيانات JSP

يتراءى لنا أن تكون قد فهمت كيفية عمل تطبيقات JDBC.

ملاحظة:

 تحميل jar (اختر الإصدار المناسب): https://downloads.mysql.com/archives/c-j/

بعد التحميل، انسخ mysql-connector-java-<الإصدار الم对应>-bin.jar إلى مجلد lib في Tomcat.

يختلف اتصال قاعدة البيانات في إصدارات MySQL 8.0 فما فوق:

  • 1ًاcom.mysql.jdbc.Driver استبدلها بـ com.mysql.cj.jdbc.Driver.

  • لا تحتاج إصدارات MySQL 8.0 فما فوق إلى إقامة اتصال SSL، يجب إغلاقه بشكل واضح.

  • أخيرًا، يجب إعداد CST.

كيفية تحميل القيادة والاتصال بالقاعدة البيانات كالتالي:

<sql:setDataSource var="snapshot" driver="com.mysql.cj.jdbc.Driver"
     url="jdbc:mysql://localhost:3306/w3codebox?useSSL=false&serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8
     user="root"    password="12345"

من البداية، دعونا نبدأ بإنشاء جدول بسيط ونضيف بعض السجلات إليه.

إنشاء بيانات اختبارية

سنقوم الآن بإنشاء قاعدة بيانات w3codebox في MySQL، وإنشاء جدول websites، بنية الجدول كالتالي:

CREATE TABLE `websites` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` char(20) NOT NULL DEFAULT '' COMMENT 'اسم الموقع',
  `url` varchar(255) NOT NULL DEFAULT '',
  `alexa` int(11) NOT NULL DEFAULT '0' COMMENT 'ترتيب Alexa',
  `country` char(10) NOT NULL DEFAULT '' COMMENT 'البلد',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8;

إدراج بعض البيانات:

INSERT INTO `websites` VALUES ('1', 'Google', 'https://www.google.cm/', '1', 'USA'), ('2', '淘宝', 'https://www.taobao.com/', '13', 'CN'), ('3', '基础教程网', 'http://ar.oldtoolbag.com', '5892', ''), ('4', '微博', 'http://weibo.com/', '20', 'CN'), ('5', 'Facebook', 'https://www.facebook.com/', '3', 'USA');

يظهر الجدول البياني للبيانات كما يلي:

عملية SELECT

المثال التالي يخبرنا كيفية استخدام علامات SQL JSTL لتنفيذ جملة SELECT SQL:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ 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"%>
 
<html>
<head>
<title>عملية SELECT</title>
</head>
<body>
<!--
اسم مستشار JDBC وـ URL قاعدة البيانات 
اسم المستخدم وكلمة المرور للـ قاعدة البيانات يجب أن تكون حسب إعداداتك الخاصة
useUnicode=true&characterEncoding=utf-8 لتجنب التشويش على النصوص الصينية
 -->
<sql:setDataSource var="snapshot" driver="com.mysql.jdbc.Driver"
     url="jdbc:mysql://localhost:3306/w3codebox?useUnicode=true&characterEncoding=utf-8"
     user="root" password="123456"/>
 
<sql:query dataSource="${snapshot}" var="result">
SELECT * from websites;
</sql:query>
<h1>مثال قاعدة بيانات JSP - موقع تعليمات الأساسيات</h1>
<table border="1" width="100%">
<tr>
   <th>المعرف</th>
   <th>اسم الموقع</th>
   <th>عنوان الموقع</th>
</tr>
<c:forEach var="row" items="${result.rows}">
<tr>
   <td><c:out value="${row.id}"/></td>
   <td><c:out value="${row.name}"/></td>
   <td><c:out value="${row.url}"/></td>
</tr>
</c:forEach>
</table>
 
</body>
</html>

زيارة هذا مثال JSP، النتائج التشغيلية كالتالي:

    عملية INSERT

هذا المثال يخبرنا كيفية استخدام علامات SQL JSTL لتنفيذ جملة INSERT SQL:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ 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"%>
 
<html>
<head>
<title>عملية SELECT</title>
</head>
<body>
<!--
اسم مستشار JDBC وـ URL قاعدة البيانات 
اسم المستخدم وكلمة المرور للـ قاعدة البيانات يجب أن تكون حسب إعداداتك الخاصة
useUnicode=true&characterEncoding=utf-8 لتجنب التشويش على النصوص الصينية
 -->
<sql:setDataSource var="snapshot" driver="com.mysql.jdbc.Driver"
     url="jdbc:mysql://localhost:3306/w3codebox?useUnicode=true&characterEncoding=utf-8"
     user="root" password="123456"/>
<!--
إدراج البيانات
 -->
<sql:update dataSource="${snapshot}" var="result">
INSERT INTO websites (name, url, alexa, country) VALUES ('基础教程网移动站', 'http://m.oldtoolbag.com', 5093, 'CN');
</sql:update>
<sql:query dataSource="${snapshot}" var="result">
SELECT * from websites;
</sql:query>
<h1>مثال قاعدة بيانات JSP - موقع تعليمات الأساسيات</h1>
<table border="1" width="100%">
<tr>
   <th>المعرف</th>
   <th>اسم الموقع</th>
   <th>عنوان الموقع</th>
</tr>
<c:forEach var="row" items="${result.rows}">
<tr>
   <td><c:out value="${row.id}"/></td>
   <td><c:out value="${row.name}"/></td>
   <td><c:out value="${row.url}"/></td>
</tr>
</c:forEach>
</table>
 
</body>
</html>

زيارة هذا مثال JSP، النتائج التشغيلية كالتالي:

    عملية DELETE

هذا المثال يوضح كيفية استخدام علامات JSTL SQL لتنفيذ جملة SQL DELETE:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ 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"%>
 
<html>
<head>
<title>عملية SELECT</title>
</head>
<body>
<!--
اسم مستشار JDBC وـ URL قاعدة البيانات 
اسم المستخدم وكلمة المرور للـ قاعدة البيانات يجب أن تكون حسب إعداداتك الخاصة
useUnicode=true&characterEncoding=utf-8 لتجنب التشويش على النصوص الصينية
 -->
<sql:setDataSource var="snapshot" driver="com.mysql.jdbc.Driver"
     url="jdbc:mysql://localhost:3306/w3codebox?useUnicode=true&characterEncoding=utf-8"
     user="root" password="123456"/>
<!--
حذف البيانات الخاصة بـ ID 11
 -->
<sql:update dataSource="${snapshot}" var="count">
  DELETE FROM websites WHERE Id = ?
  <sql:param value="${11}" />
</sql:update>
<sql:query dataSource="${snapshot}" var="result">
SELECT * from websites;
</sql:query>
<h1>مثال قاعدة بيانات JSP - موقع تعليمات الأساسيات</h1>
<table border="1" width="100%">
<tr>
   <th>المعرف</th>
   <th>اسم الموقع</th>
   <th>عنوان الموقع</th>
</tr>
<c:forEach var="row" items="${result.rows}">
<tr>
   <td><c:out value="${row.id}"/></td>
   <td><c:out value="${row.name}"/></td>
   <td><c:out value="${row.url}"/></td>
</tr>
</c:forEach>
</table>
 
</body>
</html>

زيارة هذا مثال JSP، النتائج التشغيلية كالتالي:

عملية UPDATE

هذا المثال يوضح كيفية استخدام علامات JSTL SQL لتنفيذ جملة SQL UPDATE:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ 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"%>
 
<html>
<head>
<title>عملية SELECT</title>
</head>
<body>
<!--
اسم مستشار JDBC وـ URL قاعدة البيانات 
اسم المستخدم وكلمة المرور للـ قاعدة البيانات يجب أن تكون حسب إعداداتك الخاصة
useUnicode=true&characterEncoding=utf-8 لتجنب التشويش على النصوص الصينية
 -->
<sql:setDataSource var="snapshot" driver="com.mysql.jdbc.Driver"
     url="jdbc:mysql://localhost:3306/w3codebox?useUnicode=true&characterEncoding=utf-8"
     user="root" password="123456"/>
<!--
تعديل اسم الـ ID 3: موقع دروس أساسية ويب إلى w3codebox
 -->
<c:set var="SiteId" value="3"/>
 
<sql:update dataSource="${snapshot}" var="count">
  UPDATE websites SET name = 'w3codebox' WHERE Id = ?
  <sql:param value="${SiteId}" />
</sql:update>
<sql:query dataSource="${snapshot}" var="result">
SELECT * from websites;
</sql:query>
<h1>مثال قاعدة بيانات JSP - موقع تعليمات الأساسيات</h1>
<table border="1" width="100%">
<tr>
   <th>المعرف</th>
   <th>اسم الموقع</th>
   <th>عنوان الموقع</th>
</tr>
<c:forEach var="row" items="${result.rows}">
<tr>
   <td><c:out value="${row.id}"/></td>
   <td><c:out value="${row.name}"/></td>
   <td><c:out value="${row.url}"/></td>
</tr>
</c:forEach>
</table>
 
</body>
</html>

زيارة هذا مثال JSP، النتائج التشغيلية كالتالي: