دوره های آموزشی آکادمی پی وی لرن (پروژه محور و ویژه بازار کار)



  • ۲۰
  • آبان

جلسه ۶۷ : دیتابیس SQLite در اندروید

  • دسته‌بندی‌ها :
جلسه ۶۷ : دیتابیس SQLite در اندروید
    • جزئیات
    • نوع محتواآموزش تصویری

      مقدمه

      با عرض سلام و وقت بخیر خدمت کاربران سایت پی وی لرن . و کاربرانی که دوره کامل آموزش برنامه نویسی اندروید را دنبال می کنند. SQLite یک پایگاه داده  openSource است. که داده ها را به یک فایل متنی بر روی یک دستگاه ذخیره می کند. اندروید با پیاده سازی پایگاه داده SQLite ساخته شده است. SQLite از تمام ویژگی های پایگاه داده ی رابطه ای پشتیبانی می کند. شما نیاز به اتصالاتی نظیر JDBC، ODBC و… دارید. برای آشنایی بیشتر با طرز استفاده از دیتابیس SQLite در برنامه نویسی اندروید در ادامه ی مباحث با ما همراه باشید.

      دیتابیس SQLite در برنامه نویسی اندروید

      در این مبحث ساختار کلی کار با دیتابیس SQLite در اندروید ، کلاس و متدهای مربوطه را ارائه داده ایم.

      پکیج دیتابیس

      پکیج اصلی، android.database.sqlite است که شامل کلاس هایی برای مدیریت پایگاه های داده خود می باشد.

      ایجاد دیتابیس

      برای ایجاد یک پایگاه داده، شما فقط بایدمتد openOrCreateDatabase را با نام و حالت پایگاه داده خود به عنوان یک پارامتر فراخوانی کنید.

      ساختار کلی تعریف:

      مثال : 

      همچنین توابع دیگری در پکیج database برای ایجاد و مدیریت دیتابیس به شرح زیر در دسترس است:

      ردیفمتد و توضیحات
      ۱

      openDatabase(String path, SQLiteDatabase.CursorFactory factory, int flags, DatabaseErrorHandler errorHandler)

      این متد فقط دیتابیس موجود را با حالت flag مناسب باز می کند، می تواند از flag های عمومی  OPEN_READWRITE  و OPEN_READONLY باشد.

       

      ۲

      openDatabase(String path, SQLiteDatabase.CursorFactory factory, int flags)

      این متد همانند متد فوق عمل کرده و یک دیتابیس موجود را باز می کند، اما هیچ handler را برای خطا یابی تعریف نمی کند.

      ۳

      openOrCreateDatabase(String path, SQLiteDatabase.CursorFactory factory)

      این متد نه تنها یک دیتابیس را باز می کند بلکه در صورتی که دیتابیس وجود نداشته باشد آن را ایجاد می کند.

      ۴

      openOrCreateDatabase(File file, SQLiteDatabase.CursorFactory factory)

      این متد مشابه متد فوق عمل می کند اما آبجکت File را در قالب یک مسیر بعد از یک رشته می گیرد. و مشابه متد ()file.getPath عمل می کند.

      درج داده در دیتابیس

      پس از ایجاد دیتابیس می توانید با استفاده از متد execSQL از کلاس SQLiteDatabase جداولی در دیتابیس ایجاد کرده و داده ها را در جداول درج کنید:

      مثال : 

      کدهای فوق مقادیری را در جداول دیتابیس ما وارد می کند.

      متد دیگری وجود دارد که همین کار را البته با متدهای بیشتر انجام می دهد:

      ردیفمتد و توضیحات
      ۱

      execSQL(String sql, Object[] bindArgs)

      این متد نه تنها داده ها را وارد می کند، بلکه برای به روز رسانی و یا تغییر داده های موجود در پایگاه داده با استفاده از آرگومان های باند استفاده می شود

      واکشی داده ها از دیتابیس

      ما می توانیم هر چیزی را از پایگاه داده با استفاده از یک شی از کلاس Cursor بازیابی کنیم.

      ما یک متد از این کلاس به نام rawQuery خواهیم خواند و نتیجه یابی را با اشاره گر به جدول نشان خواهیم داد.

      ما می توانیم مکان نما را به جلو برده و داده ها را بازیابی کنیم.

      مثال : 

      توابع دیگری در کلاس Cursor وجود دارد که به ما اجازه می دهد تا داده ها را به طور موثر بازیابی کنیم، که به شرح زیر است:

      ردیفمتد و توضیحات مربوطه
      ۱

      getColumnCount()

      این متد تعداد ستون های یک جدول را برمی گرداند.

      ۲

      getColumnIndex(String columnName)

      این متد شماره فهرست یک ستون را با مشخص کردن نام ستون باز می گرداند.

      ۳

      getColumnName(int columnIndex)

      این متد نام یک ستون از جدول را با شماره index آن برمی گرداند.

      ۴

      getColumnNames()

      این متد یک آرایه از نام تمامی ستون های جدول برمی گرداند.

      ۵

      getCount()

      این متد تعداد تمام سطرها در اشاره گر را برمی گرداند.

      ۶

      getPosition()

      این متد مکان جاری اشاره گر در جدول را برمی گرداند.

      ۷

      isClosed()

      اگر cursor بسته شده باشد این متد True را برمی گرداند در غیر این صورت false برمی گداند.

      کلاس helper در دیتابیس

      برای مدیریت تمام عملیات مربوط به پایگاه داده، یک کلاس کمکی SQLiteOpenHelper ارائه شده است.

      این کلاس عملیات ایجاد و بروزرسانی پایگاه داده را به صورت خودکار مدیریت می کند، که ساختار آن به صورت زیر است:

      مثال : 

      مثال

      در ادامه به ارائه ی یک مثال از SQLite پرداخته ایم که امکان افزودن ، حذف و ویرایش مخاطبین را در دیتابیس فراهم می کند.

      برای تست این برنامه شما باید آن را روی یک دستگاه اندروید واقعی دوربین دار اجرا کنید.

      مراحل انجام کار:

      مراحلتوضیحات
      ۱مراحل ایجاد برنامه در اندروید استدیو را طبق بخش های قبلی تحت عنوان پکیج com.example.Pvlearn.myapplication دنبال کنید.
      ۲فایل src / MainActivity.java را به نحوی تغییر دهید که مرجع کلیه اجزای XML را دریافت کرده و مخاطبین را در listView قرار دهد.
      ۳فایل src/DBHelper.java را برای مدیریت کارهای دیتابیس ایجاد کنید.
      ۴یک Activity جدید با نام DisplayContact.java برای نمایش محتوا در صفحه ایجاد کنید.
      ۵طراحی مناسب با این برنامه را به res/layout/activity_main اضافه کنید.
      ۶کمپوننت های xml مربوطه را به فایل res/layout/activity_display_contact.xml اضافه کنید.
      ۷کمپوننت های string لازم را به فایل  res/values/string.xml اضافه کنید.
      ۸کمپوننت های منو را به فایل res/menu/display_contact.xml اضافه کنید.
      ۹یک منو در فایل res/menu/mainmenu.xml برای افزودن گزینه ی  insert contact اضافه کنید.
      ۱۰برنامه را اجرا کنید تا دستگاه اندروید شما نتیجه را نمایش دهد.

      محتوای فایل MainActivity.java:

      مثال : 

      کدهای نمایش محتوا در فایل DisplayContact.java به صورت زیر است:

      مثال : 

      محتوای کلاس دیتابیس در فایل DBHelper.java به شرح زیر است:

      مثال : 

      محتوای فایل res/layout/activity_main.xml:

      مثال : 

      محتوای فایل res/layout/activity_display_contact.xml:

      مثال : 

      محتوای فایل res/value/string.xml:

      مثال : 

      محتوای فایل res/menu/main_menu.xml:

      مثال : 

      محتوای فایل res/menu/display_contact.xml:

      مثال : 

      محتوای فایل AndroidManifest.xml:

      مثال : 

      اجرای برنامه

      برای اجرای برنامه ی اندرویدی خود یکی از فایل های activity در برنامه ی خود کلیک کنید.

      سپس روی نماد  (Run) از نوار ابزار برای شروع اجرای برنامه کلیک کنید.

      سپس پنجره ای برای انتخاب بین دستگاه اندروید شما و شبیه ساز اندروید ظاهر خواهد شد:

      دیتابیس SQLite در برنامه نویسی اندروید

      دیتابیس SQLite در برنامه نویسی اندروید

      از پنجره ی فوق دستگاه موبایل خود را انتخاب کرده و سپس صفحه موبایل خود را چک کنید:

      دیتابیس SQLite در برنامه نویسی اندروید -صفحه نخست

      دیتابیس SQLite در برنامه نویسی اندروید -صفحه نخست

      حالا منوی خود را باز کنید، این منو در نسخه های مختلف اندروید در مکان های متفاوتی ظاهر می شود.

      دیتابیس SQLite در اندروید -انتخاب منو

      دیتابیس SQLite در اندروید -انتخاب منو

      در صفحه ی منو روی add برای افزودن مخاطب جدید کلیک کنید تا صفحه زیر ظاهر شود:

      دیتابیس SQLite در اندروید -ورود داده

      دیتابیس SQLite در اندروید -ورود داده

      پس از وارد کردن اطلاعات در فیلدهای مربوطه روی save کلیک کنید، سپس به صفحه نخست ارجاع داده می شوید.

      دیتابیس SQLite در برنامه نویسی اندروید -نتیجه درج در دیتابیس

      دیتابیس SQLite در برنامه نویسی اندروید -نتیجه درج در دیتابیس

      حالا مخاطب در دیتابیس ما اضافه شده است، برای اینکه نتیجه ذخیره در دیتابیس خود را ببینید به صورت زیر عمل کنید:

      • android studio را در سیستم خود باز کنید.
      • موبایل خود را به سیستم وصل کنید.
      • به مسیر tools/android/android device monitor بروید.
      • سپس در زبانه ی file explorer فولدر /data/data/<your.package.name>/databases<database-name> را بررسی کنید.

      کلام آخر

      اندروید از SQLite برای ذخیره و بازیابی داده ها استفاده می کند، همچنین اپلیکیشن هایی که در اندروید اجرا می شوند نیز از دیتابیس SQLite برای ذخیره و بازیابی داده استفاده می کنند، از این رو آشنایی با طرز استفاده از دیتابیس SQLite در برنامه نویسی اندروید بسیار مهم است.

      در بخش بعدی به مباحث Support Library در اندروید می پردازیم.

      QR:  جلسه ۶۷ : دیتابیس SQLite در اندروید
      به اشتراک بگذارید


      دیدگاه کاربران
      1. تصویر کاربر