الدرس التاسع : التعامل مع قواعد البيانات
أهلا وسهلا بكم في الدرس التاسع من سلسلة تعلم معنا برمجة الأندرويد .. أسأل الله أن ينفعنا وإياكم بما علمنا.
عدنا إليكم بعد فترة إنقطاع مع درس متميز أعتقد أننا اول من يتناول شرحه عربيا ، فها نحن نعود مره اخري لاستكمال دروس هذه السلسلة بمجموعة من الدروس الغير موجوده علي الساحة العربية فهذه اول مره يتم طرحها ويارب تكون إضافة مستحقة لإثراء المحتوي العربي.
نقاط مضيئة:
1- تهيئة المحاكي – هذه بعض النصايح البسيطه ليعمل معك المحاكي بشكل اسرع : عمل تحديث من خلال الـ SDK Manager لاحدث اصدار حالي فهو يحتوي علي العديد من التحسينات لجعل المحاكي اكثر سلاسة علي معالجات الحواسيب ، وعند انشاء AVD جديد يفضل ان يكون بدقة شاشة صغيره ولتكن مثلا بقياس 240*320 QVGA وهذا ايضا يحسن من سرعة أداء المحاكي – جرب ولن تندم
2- درس اليوم يعتبر متوسط المستوي وليس من دروس المبتدئين ويعتمد علي وجود خلفية بلغة SQL التي تستخدم في التعامل مع قواعد البيانات ، ولكني كعادتي في كل دروس السلسلة ساحاول التبسيط علي قدر المستطاع دون ان استفيض في الاساسيات او ان اتعمق من غير فك طالامس الاكواد.
في الدرس الماضي تكلمنا عن تخزين البيانات وفي بعض الأحيان نحتاج إلي تخزين حجم كبير من البيانات لذلك نقوم باستخدام ما يسمي بقواعد البيانات وفي الأندرويد هذا الأمر بسيط باستخدام قاعدة بيانات SQLite المرفقة في البنية الأساسية للأندرويد يمكنك الرجوع إلي الدرس الثاني ستجد في النقطة الأولي شكل هيكلي لمكونات النظام لاحظ في الجزء الخاص بالمكتبات المرفقة Libraries وجود الـ SQLite Database وسنتعلم كيفية استخدامها كما يلي:
النقاط الرئيسية لهذا الدرس:
- إنشاء قاعدة البيانات.
- قراءة البيانات وعرضها.
أولا: إنشاء قاعدة البيانات
- 1. نقوم بعمل مشروع جديد باسم SQLiteExample مثلا وليكن بهذه البيانات
لاحظ قمنا بتعديل اسم الأكتفيتي الرئيسي إلي Main
2. نذهب إلي الـ Main كلاس لكتابة هذا الكود
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
package com.androidhas.SQLiteExample;
import android.app.Activity;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
public class Main extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
SQLiteDatabase db = openOrCreateDatabase("MyDB", MODE_PRIVATE, null);
db.execSQL("create table MyTable (Name varchar, City varchar, Age int);");
db.execSQL("insert into MyTable values('Mohamed ElSawaf', 'Tanta', 21);");
db.close();
}
}
|
3. نقوم بتشغيل التطبيق ، بالتأكيد سيظهر لنا شاشة خالية بها سطر كتابي فقط لأننا لم نقم بعمل أي تعديل علي واجهة المستخدم – والسؤال هنا كيف نعرف أن التطبيق قد عمل بنجاح؟!
ببساطة سنقوم بالتأكد أنه تم إنشاء ملف قاعدة البيانات كالآتي، سنقوم بفتح الشاشة الخاصة المسماه بـ DDMS اختصار لـ Dalvik Debug Monitor Server وهي أداة مرفقة مع الأندرويد يمكن إستخدامها في عدة أشياء مفيدة سنتعرف عليها تباعا ، ولفتح هذه الشاشة ارجع لبرنامج eclipse واتبع هذه الخطوات
Window > Open Perspective > Other… > DDMS
لتظهر لك الشاشة كما في هذه الصورة
لاحظ في الجزء العلوي ناحية اليمين وجود عدة خيارات للشاشات المختلفة لتستطيع التنقل بينهم فيمكنك مثلا الضغط علي Java لتعود إلي الشاشة الخاصة بكتابة الأكواد.
نعود إلي الـ DDMS في أقصي يسار الشاشة هناك جزء خاص بالمحاكيات والأجهزة المتصلة بالجهاز اسمه Devices سنختار منه المحاكي الذي قمنا بتشغيل التطبيق عليه وفي حالتنا هذه لا يوجد غيره في القائمة ، لاحظ اسم المحاكي بين الأقواس.
وفي منتصف الشاشة تقريبا سنجد عدة تبويبات تأخذ الحيز الأكبر من الشاشة ما يهمنا منها هو تبويب File Explorer سنقوم بفتحه لكي نري الملفات الموجوده علي المحاكي.
قم بتتبع هذا المسار
data –> data –> com.androidhas.SQLiteExample –> databases
ستجد بداخل هذا الفولدر ملف قاعدة البيانات الذي قمنا بإنشاؤه واسمه MyDB كما بالصورة
ملاحظة: إذا لم تجد التبويب السابق أو الجزء الخاص بالأجهزة يمكنك فتحه من خلال
Window > Show View
ثم اختيار ما تريد إظهاره منها.
فهم الكود:
في البداية سنقوم بعمل كائن – Object من كلاس SQLiteDatabase باستخدام ميثود openOrCreateDatabase() التي تقوم بعمل فحص للتحقق من وجود قاعدة البيانات فإذا لم تكن موجوده كحالتنا هذه تقوم بإنشاء قاعدة بيانات، أما إذا كانت موجوده كما سنري لاحقا تقوم بفتح قاعدة البيانات أي عمل اتصال بها – وهذه الميثود تأخذ 3 متغيرات الأول اسم قاعدة البيانات التي نود إنشاؤها ، والثاني حالة الخصوصية هل هي متاحة للوصول إليها من أي تطبيق أم خاصه بنا ، والمتغير الأخير لا يهمنا في شيء وسنضعه بـ null
الخطوة التالية هي إضافة جدول لقاعدة البيانات بإستخدام ميثود execSQL() التي تأخذ متغير من نوع String يكون عبارة عن أمر من أوامر الـ SQL لتقوم هذه الميثود بتنفيذه ، وفي هذا السطر سيكون الأمر هو إنشاء جدول باسم MyTable عن طريق جملة CREATE TABLE ، ويمكنك التعرف علي أوامر الـ SQL المختلفة من خلال دروس عديدة متخصصة في تعليم قواعد البيانات.
بعد هذا السطر سيتم إنشاء جدول فارغ مثل الموجود في الصوره سنقوم بمليء خاناته في السطر التالي عن طريق جملة INSERT INTO
الخطوه الأخيره وكما قمنا بفتح اتصال مع قاعدة البيانات يجب غلق هذا الاتصال.
تكملة الدرس في الصفحة التالية!
أحدث التعليقات