آموزش خواندن و نوشتن بر روی جداول دیتابیس اندروید

آموزش خواندن و نوشتن بر روی جداول دیتابیس اندروید

تمام ویدیوهای دوره آموزش مقدماتی برنامه‌نویسی اندروید (Android Programming)
نصب نرم‌افزار‌های مورد نیاز و مقدمات توسعه اندروید
آشنایی با مفاهیم اولیه اندروید
توسعه مقدماتی UI در اندروید
شروع برنامه‌نویسی در اکتیویتی‌ها
تعامل با سایر اکتیویتی‌ها
توسعه مقدماتی UI (بخش دوم)
اصول توسعه UI و لایوت‌های اندروید
کار با لیست‌ها
فرگمنت در اندروید
ذخیره داده

DatabaseOpenHelper در اندروید یک کلاس مفید است که به توسعه‌دهندگان امکان خواندن و نوشتن داده‌ها از یک پایگاه‌داده SQLite را فراهم می‌کند. این کلاس به عنوان یک کلاس کمکی استفاده می‌شود تا ایجاد و ارتقاء دیتابیس‌ها را مدیریت کند. در این مقاله، به بررسی کوتاهی از نحوه استفاده از کلاس DatabaseOpenHelper پرداخته خواهد شد.

اولین قدم برای استفاده از DatabaseOpenHelper، ایجاد یک زیرکلاس از آن است. این کلاس باید از اینترفیس ها یا کلاس های مرتبط زیر نیز بهره برد:

  1. SQLiteOpenHelper<: که یک کلاس انتزاعی برای مدیریت دیتابیس‌های SQLite در اندروید است.
  2. SQLiteDatabase: که امکان انجام عملیات‌های مربوط به دیتابیس، مانند ایجاد، خواندن و نوشتن داده‌ها را فراهم می‌کند.

در ادامه، یک نمونه کد از یک DatabaseOpenHelper ساده به همراه توضیحات کد ارائه شده است:

import android.content.Context import android.database.sqlite.SQLiteDatabase import android.database.sqlite.SQLiteOpenHelper class MyDatabaseOpenHelper(context: Context) : SQLiteOpenHelper(context, DATABASE_NAME, null, DATABASE_VERSION) { companion object { private const val DATABASE_NAME = "my_database" // نام دیتابیس private const val DATABASE_VERSION = 1 // نسخه دیتابیس // کوئری ایجاد جدول private const val CREATE_TABLE_QUERY = "CREATE TABLE IF NOT EXISTS my_table (" + "id INTEGER PRIMARY KEY AUTOINCREMENT," + "name TEXT," + "age INTEGER)" } override fun onCreate(db: SQLiteDatabase) { // اجرای کوئری ایجاد جدول db.execSQL(CREATE_TABLE_QUERY) } override fun onUpgrade(db: SQLiteDatabase, oldVersion: Int, newVersion: Int) { // این متد برای ارتقاء نسخه دیتابیس استفاده می‌شود // در اینجا می‌توانید عملیات‌های مرتبط با ارتقاء دیتابیس را انجام دهید } }

در کد بالا، یک کلاس به نام MyDatabaseOpenHelper ایجاد شده است که از SQLiteOpenHelper ارث‌بری می‌کند. در constructor این کلاس، نام دیتابیس و نسخه آن تعیین می‌شود. همچنین، یک کوئری به نام CREATE_TABLE_QUERY برای ایجاد جدول اطلاعات (با فیلدهای id، name و age) تعریف شده است.

حالا که کلاس MyDatabaseOpenHelper تعریف شده است، می‌توانید از آن برای ایجاد یک دیتابیس جدید یا دسترسی به دیتابیس موجود استفاده کنید. برای این کار، می‌توانید از کد زیر استفاده کنید:

import android.content.Context import android.database.sqlite.SQLiteDatabase class ExampleClass(context: Context) { private val databaseOpenHelper: MyDatabaseOpenHelper = MyDatabaseOpenHelper(context) private val database: SQLiteDatabase = databaseOpenHelper.writableDatabase // مثال‌هایی از عملیات‌های خواندن و نوشتن داده‌ها // ... // حتماً در پایان فعالیت‌ها، دیتابیس باید بسته شود fun closeDatabase() { database.close() } }

در کد بالا، یک نمونه از کلاس MyDatabaseOpenHelper ایجاد می‌شود و از آن برای دریافت دیتابیس قابل نوشتن (به وسیله getWritableDatabase()) استفاده می‌شود. سپس می‌توانید در این کلاس ExampleClass، عملیات‌های مرتبط با خواندن و نوشتن داده‌ها را انجام دهید.

از طریق توابع insert(), update(), delete() و query() شما می‌توانید داده‌ها را به دیتابیس اضافه کنید، آن‌ها را به‌روز رسانی کنید، حذف کنید و یا به‌صورت پرس‌وجو نمایید. نکته‌ی مهمی که باید به آن توجه کنید این است که بعد از انجام هر عملیاتی بر روی دیتابیس، باید آن را بسته و منابع مرتبط با آن را آزاد کنید.

در این مقاله، به صورت خلاصه وارد کردن و استفاده از کلاس DatabaseOpenHelper در اندروید را آموختید. این کلاس به شما امکان مدیریت دیتابیس‌ها و دسترسی به داده‌ها را فراهم می‌کند. با توجه به نیازهای خود، می‌توانید این کلاس را با اطلاعات و جداول مربوط به برنامه‌ی خود سفارشی‌سازی کنید.

نظرات :
  • img
    مهدی
    جمعه, 13 مرداد 1402
    پاسخ

    بهترین آموزش اندرویدی بود که تا حالا دیده بودم واقعا کیفیت آموزش های شما خیلی بالاست ممنون بابت رایگان بودن دوره لطفا آموزش ها رو ادامه بدید

    • img
      استک لرن
      جمعه, 13 مرداد 1402

      سلام. نظر لطف شماست. بله ادامه دار هستن مشکلی از این بابت نیست. احتمالا امروز یا فردا قسمت جدید آپلود میشه نگران نباشید. برای اطلاع بیشتر عضو چنل یوتیوب @stacklearn و برای گفتمان با من عضو کانال تلگرام @stacklearn_ir بشید که اگه سوالی هم داشتید اونجا بپرسید.

ارسال نظر :
پاسخ به