مقدمة حول قاعدة بيانات Android SQLite



توفر المدونة مقدمة إلى قاعدة بيانات Android SQLite

مقدمة حول قاعدة بيانات Android SQLite

تتطلب قاعدة بيانات Android SQLite ذاكرة قليلة جدًا (حوالي 250 كيلو بايت) ، وهي متوفرة على جميع أجهزة Android. يحتوي كل جهاز على دعم داخلي لقاعدة بيانات SQLite ، والتي تتم إدارتها تلقائيًا على نظام Android مباشرة من إنشائها وتنفيذها حتى عملية الاستعلام.





SQLite هي قاعدة بيانات مفتوحة المصدر ، ومتاحة في كل قاعدة بيانات android. وهو يدعم ميزات قاعدة بيانات العلاقات القياسية ، مثل بناء جملة SQL والمعاملات وعبارات SQL. يعد SQLite إلى حد كبير الإصدار الأخف من قاعدة بيانات SQL ، حيث لا تعمل معظم أوامر SQL على قاعدة بيانات SQLite. بمجرد وضع SQLite في مكانه ، من المهم التأكد من توفر ميزة أو أمر في SQLite عندئذٍ فقط يمكن تنفيذه.

المزايا الأساسية لـ SQLite:



  • إنها قاعدة بيانات خفيفة الوزن
  • يتطلب القليل من الذاكرة
  • قاعدة بيانات تتم إدارتها تلقائيًا

يدعم SQLite 3 أنواع بيانات فقط:

  • نص (مثل سلسلة) - لتخزين نوع البيانات
  • عدد صحيح (مثل int) - لتخزين عدد صحيح من المفتاح الأساسي
  • حقيقي (مثل مزدوج) - لتخزين القيم الطويلة

بشكل أساسي لا يقوم SQLite بالتحقق من أنواع البيانات بنفسه. بعبارة أخرى ، مهما كانت أنواع البيانات المستخدمة ، فإنها توصف بأنها صالحة.

على سبيل المثال ، في هذه الحالة ، تمت مناقشة قاعدة بيانات مشغل الكابل. هنا ، تمت إضافة جدول جديد مع 'نص' في حقل الاسم ومربع اسم الحقل الذي يحمل 'حقل النص'. تم إنشاء نوع بيانات القيمة العشوائية. النتيجة النهائية هي جدول اختبار بنوع بيانات غير صالح ، مما يوضح أن SQLite لا تتحقق من نوع البيانات.



تحويل ثنائي إلى جافا عدد صحيح

* يمكن للمرء أن يجد قاعدة البيانات من خلال النقر على الحزمة والوصول إلى مجلد البيانات إلى مجلد قاعدة البيانات الذي يحتوي على الملف.

ملاحظة: يتم استخدام فئة مساعد SQLiteOpen لإدارة إنشاء قاعدة البيانات وإدارة الإصدار.

أسئلة المستخدم:

هل التغيير في نتيجة إصدار db هو تغيير إصدار SQLite من الكائن؟

لا يوجد أي تغيير في إصدار SQLite من الكائن منذ أن تعامل أحدهما مع إنشاء / تحديث قاعدة البيانات ، والآخر يلعب على البيانات المحفوظة في جداول قاعدة البيانات. وبالتالي لا توجد تبعية على الإطلاق

بالعودة إلى الوراء ، عندما قمنا بتوسيع فئة SQLiteopenHelper ، فإننا نكتب فوق أساليب Oncreate & OnUpgrade في هذه الفئة. عند الوصول إلى قاعدة بيانات SQLite ، يمكن أن تكون بطيئة في بعض الأحيان ، اعتمادًا على مدى تعقيد الاستعلام. يُفضل دائمًا التأكد من تجنب أقل تأثير أو الاستعلامات التي تعمل في العودية عند تنفيذ استعلام SQL. وهو كذلكيوصى بأداء قاعدة البيانات بشكل متزامن.يتم التعامل مع هذه الطرق أو استدعاءها تلقائيًا بواسطة إطار العمل. أيضًا ، يجب ملاحظة أنه كلما زاد أحد إصدار DB ، فإنه سيستدعي تلقائيًا الترقية إليه.

عندما يتحدث المرء عن فئة المساعد المفتوح SQLite ، يتم تمرير اسم قاعدة البيانات وإصدارها في مُنشئ الفئة الموسعة.

هنا ، يجب أخذ شيئين في الاعتبار:

  • يتم استدعاء أسلوب OnCreate () ، إذا كانت قاعدة البيانات غير موجودة.
  • يتم استدعاء طريقة OnUpgrade () ، إذا تم تحديث إصدار قاعدة البيانات.

فئة المساعد المفتوح SQLite تعطي الاسم والإصدار في المنشئ. يتم استدعاء getwriteabledatabase () وإذا كانت قاعدة البيانات غير موجودة ، فسيتم استدعاء OnCreate. إذا كانت قاعدة البيانات موجودة وتم تحديث الإصدار في حالة وجودها ، فستقوم باستدعاء OnUpgrade ().

هل هذه الطرق على المكالمة الأولى لـ db؟

دعونا نأخذ مثالا على ذلك. بمجرد تثبيت أحد التطبيقات ، سيتم إنشاء OnCreate ويتم تحميل طريقة apk على متجر Google play. بمجرد تنزيل أحدث إصدار من apk ، سيتحقق من قاعدة البيانات المثبتة بالفعل. إذا كان يحتوي على إصدار أعلى ، فسوف يستدعي الترقية ، وإذا لم يكن كذلك ، فلن يفعل شيئًا.

سؤال المستخدم

هل يلزم الحصول على إذن المستخدم لترقية إصدار ديسيبل؟

لا ، الإذن ليس مطلوبًا ، نظرًا لأننا نعمل على موارد التطبيق ، ولا يتعين علينا طلب إذن.

سؤال المستخدم

إذا قام user1 بتثبيت تطبيقي وكان إصدارًا تمت ترقيته لـ DB وبالتالي يقوم user2 بتثبيت تطبيق جديد ويقوم المستخدم 1 بترقية التطبيق. في مثل هذا السيناريو ، إذا تم استدعاء user1 عند ترقية الإصدار وتم استدعاء طريقة إنشاء user2 ، فهل جميع الطرق من android؟

نعم ، لأنه ليس لدينا أي إصدار مثبت بالفعل على الجهاز. لا يهم ، طالما لم يتم تثبيت إصدار سابق في الجهاز. إنه يشبه إلى حد كبير التعامل مع إطار العمل.

سؤال المستخدم

هل يمكننا الحصول على كائن قاعدة بيانات SQLite؟ ماذا لو كان اسم ديسيبلنزاعمع كائن آخر اسم ديسيبل؟

لا يهم ، لأن قاعدة البيانات موجودة على اسم حزمة التطبيق ، والذي يجب ألا يكون متضاربًا حتى إذا تم إنشاء مجلد فرعي بالاسم نفسه. لا يهم إلا على مستوى الجذر ويتم التعامل مع مستوى الجذر بمساعدة اسم الحزمة. وتجدر الإشارة إلى أنه لا يمكننا الحصول على تطبيقين بنفس اسم الحزمة ، ولكن يمكن أن يكون لدينا اسمان مختلفان للديسيبل ضمن حزم مختلفة. تهتم قاعدة بيانات SQLite بالتحديث والحذف والإدراج والاستعلام عن عمليات قاعدة البيانات وإغلاقها وفتحها بمساعدة الكائن.

لديك سؤال لنا؟ أذكرها في قسم التعليقات وسنعاود الاتصال بك.

المنشورات ذات الصلة: