وباکا

آموزش تخصصی برنامه نویسی وب

برنامه نویسی اندروید – 10# معرفی کلاس کمکی dbopenhelper برای بانک اطلاعاتی

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

برای برنامه نویسی بانک اطلاعاتی می توانید از دو کلاس زیر استفاده کرده و توابع دلخواه خود را به آنها اضافه کنید. این دو کلاس می توانند به عنوان جزء ثابت در همه پروژه های بانک اطلاعاتی وجود داشته و متناسب با جداول و عملیات مورد نیاز تغییراتی در آنها بدهید. در ادامه به شرح قسمت های مختلف هر کدام از این دو کلاس می پردازیم

کلاس dbopenhelper

این کلاس دارای تعاریف و دستوراتی است تا در اولین اجرای برنامه بانک اطلاعاتی را در SQLite ایجاد کرده و در اجراهای بعدی برنامه بانک اطلاعاتی را در شروع اجرا باز کرده و در انتهای برنامه می بندد . شما نیز می توانید امکانات بیشتری از طریق تعریف توابع جدید به آن اضافه کنید. این کلاس از کلاس SQLiteOpenHelper ارث بری دارد که در کتابخانه های جاوا پیاده سازی شده است.

کد کلاس dbopenhelper می تواند بصورت زیر باشد:
package com.example.dbstart;import android.content.Context;
import android.database.DatabaseErrorHandler;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.database.sqlite.SQLiteOpenHelper;
public class dbopenhelper extends SQLiteOpenHelper {
public static String db_name="amoozesh";
public static String create_studs="create table tbl_studs(sid integer primary key autoincrement,name text,avgr float,fid int);";public dbopenhelper(Context context) {
super(context, db_name, null, 1);
}
public void onCreate(SQLiteDatabase db) {
db.execSQL(create_studs);
}
public void onUpgrade(SQLiteDatabase db, int arg1, int arg2) {
db.execSQL("DROP TABLE IF EXIST tbl_studs ");
onCreate(db);
}
}

شرح کلاس بانک اطلاعاتی dbopenheper

به نام pacakge در شروع برنامه دقت کنید با توجه به محل قرار گرفتن فایل در پروژه باید نام پکیج مناسب را به آن اختصاص دهید.

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

شکل تعریف کلاس بصورت زیر است:
public class dbopenhelper extends SQLiteOpenHelper {
...
}

در نتیجه این کلاس از کلاس کتابخانه ای SQLiteOpenHepler ارث بری دارد.

در داخل کلاس متغیر عمومی و استاتیک db_name برای نگهداری نام بانک اطلاعاتی تعریف شده است:

public static String db_name=”amoozesh”;

همچنین در داخل کلاس متغیر عمومی و استاتیک create_studs دارای یک رشته ثابت که دستوری به زبان SQL برای ایجاد جدول دانشجویان است تعریف شده است.

public static String create_studs="create table tbl_studs(sid integer primary key autoincrement,name text,avgr float,fid int);";

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

public dbopenhelper(Context context) {
super(context, db_name, null, 1);
}

تابع onCreate یک شی SQLiteDatabase (بانک اطلاعاتی) را بعنوان پارامتر دریافت کرده و متد execSQL آنرا فراخوانی می کند که این فراخوانی منجر به ساخت جدول دانشجویان می شود.

public void onCreate(SQLiteDatabase db) {
db.execSQL(create_studs);
}

تابع onUpgrade پارامتر بانک اطلاعاتی به همراه دو پارامتر دیگر را دریافت کرده و ابتدا جدول دانشجویان را حذف کرده و سپس با فراخوانی تابع onCreate جدول را از نو می سازد. این تابع برای بانک ارتقای بانک اطلاعاتی و از نوساخت جداول  استفاده خواهد شد.

public void onUpgrade(SQLiteDatabase db, int arg1, int arg2) {
db.execSQL("DROP TABLE IF EXIST tbl_studs ");
onCreate(db);
}

در این بخش یک کلاس کمکی کاربردی در برنامه نویسی بانک اطلاعاتی در اندروید را معرفی کردیم در بخش بعدی کلاس مهم دیگری را معرفی خواهیم کرد.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

فهرست مطالب