android.database.sqlite.SQLiteOpenHelper klassi, agar ular mavjud bo'lmasa, barcha jadvallar bilan ma'lumotlar bazasini yaratishga imkon beradi.
SQLite quyidagi ma'lumotlar turini ishlatadi:
INTEGER: javadagi i_nt turiga o'xshash butun sonni ifodalaydi
REAL: java -da float va double -ga o'xshash suzuvchi nuqta raqamini ifodalaydi.
TEXT: java -da String va char -ga o'xshash belgilar to'plamini ifodalaydi.
BLOB: javadagi int turiga o'xshash rasm kabi ikkilik ma'lumotlar massivini ifodalaydi.
Saqlanadigan ma'lumotlar javada mos keladigan turlarni aks ettirishi kerak.
Ma'lumotlar bazasini yaratish va ochish. Androidda Activity kodidan yangi ma'lumotlar bazasini yaratish yoki ochish uchun openOrCreateDatabase() usulini chaqirishimiz mumkin. Bu usul uchta parametrni olishi mumkin:
ma'lumotlar bazasi nomi
ish rejimini belgilaydigan raqamli qiymat (odatda MODE_PRIVATE doimiy shaklida)
ma'lumotlar bazasi bilan ishlash uchun kursor yaratish zavodini ifodalovchi SQLiteDatabase.CursorFactory obyekti shaklidagi ixtiyoriy parametr.
Masalan, app.db ma'lumotlar bazasini yaratish:
SQLiteDatabase db = getBaseContext().openOrCreateDatabase("app.db", MODE_PRIVATE, null);
Ma'lumotlar bazasi so'rovini bajarish uchun SQLiteDatabase sinfining execSQL usulidan foydalanishingiz mumkin. SQL usuli bu usulga o'tkaziladi. Masalan, ma'lumotlar bazasida users jadvalini yaratish:
SQLiteDatabase db = getBaseContext().openOrCreateDatabase("app.db", MODE_PRIVATE, null);
db.execSQL("CREATE TABLE IF NOT EXISTS users (name TEXT, age INTEGER)");
Agar bizga nafaqat ifodani bajarish, balki ma'lumotlar bazasidan ba'zi ma'lumotlarni olish kerak bo'lsa, unda rawQuery() usuli qo'llaniladi. Bu usul SQL ifodasini parametr sifatida, shuningdek sql ifodasi uchun qiymatlar to'plamini oladi. Masalan, ma'lumotlar bazasidan barcha ob'ektlarni olish:
SQLiteDatabase db = getBaseContext().openOrCreateDatabase("app.db", MODE_PRIVATE, null);
db.execSQL("CREATE TABLE IF NOT EXISTS users (name TEXT, age INTEGER)");
Cursor query = db.rawQuery("SELECT * FROM users;", null);
if(query.moveToFirst()){
String name = query.getString(0);
int age = query.getInt(1);
}
db.rawQuery() usuli Cursor ob'ektini qaytaradi, uning yordamida biz olingan ma'lumotlarni olishimiz mumkin.
Ma'lumotlar bazasida hech qanday ob'ekt bo'lmaganda vaziyat bo'lishi mumkin va buning uchun query.moveToFirst() usuli yordamida biz ma'lumotlar bazasidan olingan birinchi ob'ektga o'tishga harakat qilamiz. Agar bu usul false qaytarsa, so'rov ma'lumotlar bazasidan hech qanday ma'lumot olmagan.
Endi ma'lumotlar bazasi bilan ishlash uchun oddiy dastur tuzamiz. Buning uchun yangi loyiha yarataylik.
Do'stlaringiz bilan baham: |