API قاعدة بيانات Web SQL ليست في الواقع جزءًا لا يتجزأ من مواصفات HTML5 ، ولكن مواصفات منفصلة. يستخدم مجموعة من واجهات برمجة التطبيقات لمعالجة قاعدة بيانات العميل. لقد دعمت المتصفحات الرئيسية مثل Safari و Chrome و Firefox و Opera بالفعل قاعدة بيانات الويب SQL. قواعد بيانات SQL الخاصة بـ HTML5 هي مغرية حقًا. عندما تجد أنه يمكنك استخدام نفس بيان الاستعلام مثل MySQL Query لتشغيل قاعدة البيانات المحلية ، ستجد هذا الشيء ممتعًا للغاية. اليوم ، دعنا نتعرف على واجهة برمجة تطبيقات قاعدة بيانات الويب الخاصة بـ HTML 5.
سيقوم ما يلي بتقديم كيفية إنشاء قاعدة بيانات وفتحها ، وإنشاء جدول ، وإضافة البيانات ، وتحديث البيانات ، وحذف البيانات ، وحذف الجداول.
قدم أولاً ثلاث طرق أساسية
1. Opendatabase: تستخدم هذه الطريقة قاعدة بيانات موجودة أو تنشئ قاعدة بيانات جديدة لإنشاء كائن قاعدة بيانات.
2. المعاملة: تتيح لنا هذه الطريقة التحكم في التزام المعاملات أو التراجع وفقًا للموقف.
3. ينفذ executesql: يتم استخدام هذه الطريقة لتنفيذ استعلامات SQL الحقيقية.
الخطوة 1: افتح الاتصال وإنشاء قاعدة البيانات
DAR DATABASE = OPENDATABASE ("الطالب" ، "1.0" ، "جدول الطالب" ، 1024 * 1024 ، الدالة () {}) ؛
إذا (! قاعدة البيانات) {
تنبيه ("فشل إنشاء قاعدة البيانات!") ؛
} آخر {
تنبيه ("إنشاء قاعدة البيانات بنجاح!") ؛
}
اشرح طريقة Opendatabase تفتح قاعدة بيانات موجودة ، وإذا لم تكن قاعدة البيانات موجودة ، فيمكنها أيضًا إنشاء قاعدة بيانات. عدة معلمات هي:
1. اسم قاعدة البيانات.
2. رقم الإصدار هو 1.0 حاليا. بغض النظر عن ماذا ، لا بأس إذا كتبته حتى الموت.
3. وصف قاعدة البيانات.
4. اضبط حجم البيانات.
5. وظيفة رد الاتصال (يمكن حذفها).
قم بإنشاء قاعدة بيانات على المكالمة الأولى ، ثم قم بإنشاء اتصال.
قاعدة البيانات التي تم إنشاؤها محلية ، مع المسار كما يلي:
C:/المستخدمين/المسؤول/APPDATA/محلي/Google/Chrome/المستخدم/قواعد البيانات الافتراضية/البيانات/http_localhost_4987.
يمكن استخدام قاعدة بيانات SQLite التي تم إنشاؤها لفتح الملف باستخدام SQLitespy ويمكنك رؤية البيانات في الداخل. SQLitespy هو برنامج أخضر. يمكنك تنزيل العنوان على Baidu أو تنزيل Sqlitespy الرسمي: Sqlitespy.
الخطوة 2: إنشاء جدول بيانات
this.createTable = function () {
database.transaction (الدالة (tx) {
tx.executesql (
"قم بإنشاء جدول إذا لم يكن موجودًا STU (معرف فريد من نوعه ، نص اسم)" ،
[] ،
الدالة (tx ، النتيجة) {Alert ('تم إنشاء جدول STU بنجاح') ؛ } ،
Function (tx ، error) {ALERT ('فشل إنشاء جدول STU:' + error.message) ؛
}) ؛
}) ؛
}
اشرح ذلك ،
تحتوي وظيفة executesql على أربعة معلمات ، ومعناها هي:
1) يمثل سلسلة الاستعلام ، ولغة SQL المستخدمة هي SQLITE 3.6.19.
2) أدخل بيانات السلسلة في الاستعلام حيث توجد علامة الاستفهام.
3) وظيفة رد الاتصال تنفذ عند النجاح. إرجاع معلمتين: تكساس ونتيجة التنفيذ.
4) وظيفة رد الاتصال المنفذة على الفشل. إرجاع معلمتين: TX ورسالة الخطأ الفاشلة.
الخطوة 3: إجراء الإضافة والحذف والتعديل والبحث
1) إضافة البيانات:
this.insert = function () {
database.transaction (الدالة (tx) {
tx.executesql (
"أدخل في القيم (المعرف ، الاسم) (؟ ،؟)" ،
[ID ، 'Xu Mingxiang'] ،
function () {Alert ('إضافة البيانات بنجاح') ؛ } ،
Function (tx ، error) {ALERT ('ADD DATA FAILS:' + error.message) ؛
}) ؛
}) ؛
2) بيانات الاستعلام
this.query = function () {
database.transaction (الدالة (tx) {
tx.executesql (
"حدد * من Stu" ، [] ،
الدالة (TX ، النتيجة) {// تنفيذ وظيفة رد الاتصال الناجح
// افعل ما تريد القيام به للنتيجة هنا .........
} ،
دالة (تكساس ، خطأ) {
تنبيه (فشل الاستعلام: ' + error.message) ؛
}) ؛
}) ؛
}
اشرح ذلك
وظيفة رد الاتصال التي تم تنفيذها بنجاح في الكود أعلاه لها نتيجة معلمة.
النتيجة: مجموعة البيانات التي تم الاستعلام. نوع البيانات الخاص به هو sqlresultset ، تماما مثل datatable في c#.
تعريف sqlresultset هو:
واجهة sqlresultset {
قراءة readonly insertid long ؛
قراءة readonly الصفوف الطويلة.
readonly readonly sqlresultsetRowlist ows ؛
} ؛
أهم خاصية - صفوف نوع الإعلام هي صفوف مجموعة البيانات.
الصفوف لها خصائصان: الطول والبند.
لذلك ، احصل على قيمة صف وعمود من نتيجة الاستعلام: result.rows [i] .item [fieldName].
3) تحديث البيانات
this.update = function (id ، name) {
database.transaction (الدالة (tx) {
tx.executesql (
"تحديث اسم تعيين STU =؟ أين معرف =؟" ،
[الاسم ، معرف] ،
دالة (تكساس ، نتيجة) {
} ،
دالة (تكساس ، خطأ) {
ALERT ('فشل التحديث:' + error.message) ؛
}) ؛
}) ؛
}
4) حذف البيانات
this.del = function (id) {
database.transaction (الدالة (tx) {
tx.executesql (
"حذف من stu أين معرف =؟" ،
[بطاقة تعريف]،
دالة (تكساس ، نتيجة) {
} ،
دالة (تكساس ، خطأ) {
تنبيه ("فشل الحذف:" + خطأ. message) ؛
}) ؛
}) ؛
}
5) حذف جدول البيانات
this.droptable = function () {
database.transaction (الدالة (tx) {
tx.executesql ('drop table stu') ؛
}) ؛
}
ويب SQL Database Demo لإضافة وحذف وتعديل وفحص ، قم بتنزيله بسرعة.