سلام
این مطلب در سال ۱۳۹۲ نوشته شده، آموزش کاملتر و جامعتری رو داریم تهیه میکنیم که میتونید در آدرسهای زیر مطالعه کنید.
بخش اول: آشنایی با دیتابیس - ساخت جدول و وارد کردن اطلاعات به جدول
بخش دوم: خواندن اطلاعات از جدول و استفاده از اونها
بخش سوم: آپدیت و حذف کردن اطلاعات درون جدول
بخش چهارم: پیاده سازی دیتابیس پیشرفته اندروید با استفاده از کلاس ها
بخش پنجم: پیاده سازی گام به گام نمونه پروژه دیتابیس پیشرفته
بخش ششم: آموزش استفاده از دیتابیس آماده اندروید
-----------------------------------------------------------------------------------------------
توی این پست ابتدا ساخت دستی دیتابیس و سپس کار با دیتابیس رو یاد میگیرید
درصورتی که میخواین با دیتابیس آماده کار کنین این پست رو مشاهده کنین
-----------------------------------------------------------------------------------------------------------------------
واقعیت اینه که من از همون اول نتونستم با پیچیدگی کلاس DataBaseHelper ارتباط خوبی برقرار کنم ، به همین خاطر خیلی ساده و ابتدایی میخوام کار با دیتابیس رو بدون پیچیدگی آموزش بدم
باشد که خدا از ما راضی باشد
برای دیتابیس چند تا پارامتر داریم ، یکی شیء دیتابیس که اینطوری تعریف میشه
SQLiteDatabase mydb;
بعد نام دیتابیسی که میخوایم ایجاد کنیم یا ازش استفاده کنیم
private static String DBNAME = "PERSONS"; // THIS IS THE SQLITE DATABASE FILE NAME.
بعد نام جدول یا جدول های دیتابیس رو برای استفاده تعریف میکنید ، اگر با مفهوم جدول آشنا نیستید باید بگم بخشی از دیتابیس هست که شما می تونید اطلاعات مربوط به یک موضوع یا اصطلاحا موجودیت خاص رو ذخیره کنید
private static String TABLE = "MY_TABLE"; // THIS IS THE TABLE NAME
خب تا اینجا شما هیچ کار نکردید ، فقط اطلاعات دیتابیس رو برای استفاده مشخص کردید
حالا با این کد ما یک دیتابیس با اسمی که در بالا مشخص کردیم رو درست میکنیم و اگر این دیتابیس قبلا وجود داشت بازش میکنیم تا ازش برای ورود یا خوندن اطلاعات استفاده کنیم
mydb = openOrCreateDatabase(DBNAME, Context.MODE_PRIVATE,null);
----------------------------------------------------------------------------------------
ساخت جدول در دیتابیس
خب حالا دیتابیس ما برای استفاده آماده ست ، الان نیاز به یک جدول با مشخصات مورد نظرمون برای ثبت اطلاعات داریم ( دیتابیس میتونه دارای چندین جدول باشه ، و هر جدول میتونه به ازای هر مشخصه یک ستون داشته باشه که باید نوع اون رو تعریف کنیم )
مثلا اگر شما میخواین اطلاعات یک دانش آموز رو ذخیره کنین ، ممکنه به این ترتیب جدول رو بسازید
ستون شماره دانش آموزی ، ستون نام ، نام خانوادگی ، معدل
هر جدول باید یک ستون داشته باشه که مقدار اون تکراری نباشه (primary key) ، اگر همچین مشخصه ای نداشتین میتونین یک ستون به اسم ID بسازید و بذارید که خود sqlite اون رو مقدار بده
mydb.execSQL("CREATE TABLE IF NOT EXISTS "+ TABLE +" (ID INTEGER PRIMARY KEY, NAME TEXT, PLACE TEXT);");
خب جدول ما درصورتی که وجود نداشته باشه ساخته میشه ( دقت کنید اول اسم ستون ، بعد نوع محتویات ستون مثلا AGE INTEGER )
اگر کارتون با دیتابیس تموم شد حتما اون رو با کد زیر ببندید
mydb.close();
-----------------------------------------------------------------------------------------------
وارد کردن اطلاعات در جدول ( از طریق کد )
حالا اگر خواستید اطلاعات رو وارد جدول کنید ، اگر دیتابیس بسته ست بعد از باز کردن اون از کد زیر استفاده میکنیم
mydb = openOrCreateDatabase(DBNAME, Context.MODE_PRIVATE,null);
mydb.execSQL("INSERT INTO " + TABLE + "(NAME, PLACE) VALUES('یک دو سه','امتحان')");
mydb.close();
اینجا ما دو تا ستون NAME و PLACE رو مقدار دادیم ، و همونطور که دقت میکنید ID رو مقدار ندادیم تا خود Sqlite مقدار اون رو از یک هر دفعه اضافه کنه به صورت اتوماتیک ( اگر مقدار ستون primary key تکراری باشه خطا میگیرید )
کار با دستورات UPDATE و DELETE رو توی این پست میتونید مشاهده کنید
-------------------------------------------------------------------------------------------------------------------
خواندن اطلاعات از دیتابیس
حالا میخوایم اطلاعات رو از جدول بخونیم
برای این کار از یک شیء Cursor استفاده میکنیم که اطلاعات جدول رو داخل خودش نگه میداره
ابتدا باید قسمت های مورد نیاز از جدول رو داخل Cursor بریزیم
mydb = openOrCreateDatabase(DBNAME, Context.MODE_PRIVATE,null);
Cursor allrows = mydb.rawQuery("SELECT * FROM "+ TABLE, null);
ما تو این کد با * تمام ستون های جدول رو به ترتیب داخل cursor ریختیم
در صورت نیاز میتونید فقط چند ستون رو انتخاب کنید تا کارتون راحت تر باشه
و میتونید ردیف هایی رو انتخاب کنید که یک شرط خاص رو داشته باشند ( مثلا دانشجویان با معدل بالای 16 )
اینا رو اگر نمیدونید یا برید دنبالش بگردید ، یا بپرسید براتون مثال بزنم ، چون به SQL ربط داره نه اندروید
خب حالا اطلاعات بدست اومده توی Cursor رو میشه به این ترتیب از اول تا آخر استفاده کرد
مثلا ما این اطلاعات رو داخل آرایه میذاریم، یا میشه اطلاعات رو توی textView نمایش داد ( این دست خود شماست )
فقط حواستون باشه اگر از آرایه استفاده کردید قبلش آرایه رو بر اساس تعداد سطرهای cursor دوباره سازی کنید، مثل کد زیر
NAME = new String[allrows.getCount()];
و ریختن اطلاعات توی آرایه :
int i = 0;
if(allrows.moveToFirst()){
do{
ID[i] = allrows.getInt(0);
NAME[i] = allrows.getString(1);
PLACE[i] = allrows.getString(2);
i++;
}
while(allrows.moveToNext());
}
allrows.close();
mydb.close();
بعد از خوندن اطلاعات از cursor هم باید حتما اون رو مثل دیتابیس بندید
اطلاعاتی رو که داخل آرایه ریختین میتونید به آداپتر لیست ویو یا گرید ویو بفرستید و در اونجا نمایش بدین
خب تبریک میگم شما یاد گرفتید خیلی ساده اطلاعات رو در دیتابیس ذخیره کنید و از دیتابیس بخونید
اگر نیاز به توضیح بود در خدمتم
دکمه تشکر هم که اون پایین هست دیگه