تا اینجا شما با دیتابیس در اندروید آشنا شدید. در صدر SQLite را توضیح دادیم و درین نوشته ی علمی قصد داریم بیشخیس به آن بپردازیم. SQLiteOpenHelper Android دارنده خصوصیتهایی میباشد تا بتواند طرحهای تغییرو تحول مقر داده را در دست گرفتن نماید، که بیشخیس به به کارگیری از کلاس SQLiteOpenHelper بستگی طراحی اپلیکیشن در مشهد دارااست. SQLiteOpenHelper برای خلاص شدن از دو نقص بسیار رایج پیاده سازی گردیدهاست. 1- وقتی که نرمافزار برای نخسین بار جاری ساختن می گردد، دراین مرحله، ما هنوز مقر داده نداریم. به این ترتیب ما بدون چاره خواهیم بود جداول، ایندکسها، دادههای نخستین و... را تولید کنیم. 2- وقتی که اپ به یک طرح جدیدتر ارتقاء می یابد، مقر دادهی ما همچنان از ورژنی کهن اپلیکیشن در طرح کهن استعمال مینماید.
همینطور موردای برای تغییرو تحول نرم افزاری خزانه اطلاعاتی خواهید داشت تا با نیاز سایر نرم افزارها منطبق داشته باشد.
SQLiteOpenHelper با به کارگیری از این منطق، مقر داده را مبنی بر خصوصیات ما ساخت و بروز مینماید. برای این فعالیت ما می بایست یک subclass سفارشی با به کار گیری از SQLiteOpenHelper به سه طرز ذیل را جاری ساختن کنیم.
1. Constructor: مشتمل بر Context (برای مثال، یک Activity)، اسم خزانه اطلاعاتی، یک cursor factory ازروی اراده و یکی درست که نمایانگر ورژنی مقر دادهای میباشد که شما به کار گیری می کنید.
public DatabaseHelper(Context context) {
super(context, DB_NAME, null, DB_VERSION);
}
2. (onCreate (SQLiteDatabase db: زمانی مقر داده وجود نداشته باشد و اپلیکیشن به یک دیتابیس نیاز داشته باشد، (onCreate (SQLiteDatabase db فراخوانی میگردد.
با استعمال از مقر دادهی تازه ساخت و ساز گردیده، یک شی SQLiteDatabase را فراخوانی می کنیم که میاقتدار آن را با جداول و دادههای نخستین عده کرد.
3. (onUpgrade (SQLiteDatabase db، int oldVersion، int newVersion: در صورتیکه ورژنی اسکیما (schema) موردنیاز شما با ورژنی اسکیما مقر داده همخوانی نداشته باشد، این تابع فراخوانی می شود. یک شیء SQLiteDatabase و شمارههای ورژنی کهن و تازه را به ما برمیگرداند. از این رو می توانیم شایسته ترین شیوه برای تبدیل دیتابیس از طرح دیرین به ورژنی نو را بفهمیم.
یک کلاس DBManager را برای ایفا همهی عملیات مقر داده CRUD (ساخت و ساز، قرائت، به روزرسانی و حذف) تعریفوتمجید می کنیم.
گشوده و بسته کردن اتصال مقر داده SQLite در اندروید
پیش از اجرا هر سیرتکامل عملیات دیتابیس مانند افزودن، بروزرسانی، حذف پرونده در یک جدول، آغاز با فراخوانی مشی ()getWritableDatabase به عبارتیطور که در تحت آمده میباشد، اتصال خزانه اطلاعاتی را گشوده فرمایید.
public DBManager open() throws SQLException {
dbHelper = new DatabaseHelper(context);
database = dbHelper.getWritableDatabase();
return this;
}
dbHelper مثالای از SQLiteOpenHelper ،Subclass میباشد.
برای بستن اتصال مقر داده، سیاق ذیل فراخوانی میگردد.
public void close() {
dbHelper.close();
}
درج رکورد تازه در جدول مقر داده SQLite در اندروید
قطعه کد تحت روشی درج یک رکورد تازه در مقر دادهی اندرویدی SQLite را نشانه می دهد.
public void insert(String name, String desc) {
ContentValues contentValue = new ContentValues();
contentValue.put(DatabaseHelper.SUBJECT, name);
contentValue.put(DatabaseHelper.DESC, desc);
database.insert(DatabaseHelper.TABLE_NAME, null, contentValue);
}
بروزرسانی رکورد در جدول مقر داده SQLite در اندروید
قطعه کد پایین شیوهی بروزرسانی یک رکورد واحد را نشانه میدهد.
public int update(long _id, String name, String desc) {
ContentValues contentValues = new ContentValues();
contentValues.put(DatabaseHelper.SUBJECT, name);
contentValues.put(DatabaseHelper.DESC, desc);
int i = database.update(DatabaseHelper.TABLE_NAME, contentValues, DatabaseHelper._ID + " = " + _id, null);
return i;
}
SQLite در اندروید - حذف یک رکورد
تنها می بایست شناسه رکورد را حذف کنیم تا حذف گردد. به عبارتیطور که در تحت نماد داده شدهاست.
تا اینجا شما با دیتابیس در اندروید آشنا شدید. در صدر SQLite را توضیح دادیم و درین نوشته ی علمی قصد داریم بیشخیس به آن بپردازیم. SQLiteOpenHelper Android دارنده خصوصیتهایی میباشد تا بتواند طرحهای تغییرو تحول مقر داده را در دست گرفتن نماید، که بیشخیس به به کارگیری از کلاس SQLiteOpenHelper بستگی طراحی اپلیکیشن در مشهد دارااست. SQLiteOpenHelper برای خلاص شدن از دو نقص بسیار رایج پیاده سازی گردیدهاست. 1- وقتی که نرمافزار برای نخسین بار جاری ساختن می گردد، دراین مرحله، ما هنوز مقر داده نداریم. به این ترتیب ما بدون چاره خواهیم بود جداول، ایندکسها، دادههای نخستین و... را تولید کنیم. 2- وقتی که اپ به یک طرح جدیدتر ارتقاء می یابد، مقر دادهی ما همچنان از ورژنی کهن اپلیکیشن در طرح کهن استعمال مینماید.
همینطور موردای برای تغییرو تحول نرم افزاری خزانه اطلاعاتی خواهید داشت تا با نیاز سایر نرم افزارها منطبق داشته باشد.
SQLiteOpenHelper با به کارگیری از این منطق، مقر داده را مبنی بر خصوصیات ما ساخت و بروز مینماید. برای این فعالیت ما می بایست یک subclass سفارشی با به کار گیری از SQLiteOpenHelper به سه طرز ذیل را جاری ساختن کنیم.
1. Constructor: مشتمل بر Context (برای مثال، یک Activity)، اسم خزانه اطلاعاتی، یک cursor factory ازروی اراده و یکی درست که نمایانگر ورژنی مقر دادهای میباشد که شما به کار گیری می کنید.
public DatabaseHelper(Context context) {
super(context, DB_NAME, null, DB_VERSION);
}
2. (onCreate (SQLiteDatabase db: زمانی مقر داده وجود نداشته باشد و اپلیکیشن به یک دیتابیس نیاز داشته باشد، (onCreate (SQLiteDatabase db فراخوانی میگردد.
با استعمال از مقر دادهی تازه ساخت و ساز گردیده، یک شی SQLiteDatabase را فراخوانی می کنیم که میاقتدار آن را با جداول و دادههای نخستین عده کرد.
3. (onUpgrade (SQLiteDatabase db، int oldVersion، int newVersion: در صورتیکه ورژنی اسکیما (schema) موردنیاز شما با ورژنی اسکیما مقر داده همخوانی نداشته باشد، این تابع فراخوانی می شود. یک شیء SQLiteDatabase و شمارههای ورژنی کهن و تازه را به ما برمیگرداند. از این رو می توانیم شایسته ترین شیوه برای تبدیل دیتابیس از طرح دیرین به ورژنی نو را بفهمیم.
یک کلاس DBManager را برای ایفا همهی عملیات مقر داده CRUD (ساخت و ساز، قرائت، به روزرسانی و حذف) تعریفوتمجید می کنیم.
گشوده و بسته کردن اتصال مقر داده SQLite در اندروید
پیش از اجرا هر سیرتکامل عملیات دیتابیس مانند افزودن، بروزرسانی، حذف پرونده در یک جدول، آغاز با فراخوانی مشی ()getWritableDatabase به عبارتیطور که در تحت آمده میباشد، اتصال خزانه اطلاعاتی را گشوده فرمایید.
public DBManager open() throws SQLException {
dbHelper = new DatabaseHelper(context);
database = dbHelper.getWritableDatabase();
return this;
}
dbHelper مثالای از SQLiteOpenHelper ،Subclass میباشد.
برای بستن اتصال مقر داده، سیاق ذیل فراخوانی میگردد.
public void close() {
dbHelper.close();
}
درج رکورد تازه در جدول مقر داده SQLite در اندروید
قطعه کد تحت روشی درج یک رکورد تازه در مقر دادهی اندرویدی SQLite را نشانه می دهد.
public void insert(String name, String desc) {
ContentValues contentValue = new ContentValues();
contentValue.put(DatabaseHelper.SUBJECT, name);
contentValue.put(DatabaseHelper.DESC, desc);
database.insert(DatabaseHelper.TABLE_NAME, null, contentValue);
}
بروزرسانی رکورد در جدول مقر داده SQLite در اندروید
قطعه کد پایین شیوهی بروزرسانی یک رکورد واحد را نشانه میدهد.
public int update(long _id, String name, String desc) {
ContentValues contentValues = new ContentValues();
contentValues.put(DatabaseHelper.SUBJECT, name);
contentValues.put(DatabaseHelper.DESC, desc);
int i = database.update(DatabaseHelper.TABLE_NAME, contentValues, DatabaseHelper._ID + " = " + _id, null);
return i;
}
SQLite در اندروید - حذف یک رکورد
تنها می بایست شناسه رکورد را حذف کنیم تا حذف گردد. به عبارتیطور که در تحت نماد داده شدهاست.