10.Flutter Android Studioda ma\'lumotlar bazasi bilan ishlash, SQL boshlang’ich buyruqlari SELECT, INSERT, UPDATE, DELETE ni ishlatish.
onCreate — database yaratish uchun
onUpgrade — yaratilgan database ni yangilash uchun
onCreate metodini ichiga quydagilarni yoziladi:
@Override public void onCreate(SQLiteDatabase db)
{ // TODO Auto-generated method stub
db.execSQL(SCRIPT_CREATE_DATABASE); }
Endi quyidagi o’zgaruvchilarni yaratamiz, bu o’zgaruvchilar database bilan
ishlash uchun har doim kerak bo’ladigan o’zgaruvchilar bo’lganligi uchun
hususiyatini public qilamiz
public static final String MYDATABASE_NAME = "opennet";
public static final String MYDATABASE_TABLE = "opennetchilar";
public static final int MYDATABASE_VERSION = 1;
public static final String KEY_ID = "_id";
public static final String ism = "ism";
public static final String familya = "familya";
//create table MY_DATABASE (ID integer primary key, Content text not null);
private static final String SCRIPT_CREATE_DATABASE = "create table "
+ MYDATABASE_TABLE
+ " (" + KEY_ID + " integer primary key autoincrement, " + ism + " text not
null, " + familya + " text not null);";
private SQLiteHelper sqLiteHelper;
private SQLiteDatabase sqLiteDatabase;
private Context context;
Endi database yaratish funksiyasiga kelsak, quyidagikodni yozamiz
sqLiteHelper = new SQLiteHelper(context, MYDATABASE_NAME, null,
MYDATABASE_VERSION);
SQLiteHelper klassiga murojaat qiladi va onCreate metodi ishga tushadi, va
bizning databaseimizni yaratib beradi.
Eslatma:database ni 1 marta yaratadi,agar shunday nomli database bor bo’lsa
yaratmaydi.
SqliteAdapter klassimizni ichida quyidagi funksiyalarni yaratamiz:
openToRead() — nomidan ham ma’lumki, databaseni o’qishga ruxsat olish
uchun public SQLiteAdapter openToRead() throws
android.database.SQLException { sqLiteHelper = new SQLiteHelper(context,
MYDATABASE_NAME, null, MYDATABASE_VERSION); sqLiteDatabase
= sqLiteHelper.getReadableDatabase(); return this; }
openToWrite() — nomidan ham ma’lumki, databaseni tahrirlash uchun ruxsat
olish
public SQLiteAdapter openToWrite() throws android.database.SQLException {
sqLiteHelper = new SQLiteHelper(context, MYDATABASE_NAME, null,
MYDATABASE_VERSION);
return this; }
Va nihoyat databaseni ishlatib bo’lganimizdan so’ng, uni yopish.
public void close(){ sqLiteHelper.close();
}
Database ga ma’lumot qo’shish funksiyasi
public long insert(String content1, String content2){
ContentValues contentValues = new ContentValues();
contentValues.put(ism, content1); contentValues.put(familya,
content2);
return
sqLiteDatabase.insert(MYDATABASE_TABLE, null, contentValues);
}
Database dagi barcha ma’lumotlarni o’chirish funksiyasi
public int deleteAll(){ return
sqLiteDatabase.delete(MYDATABASE_TABLE, null, null); }
Databasidagi barcha ma’lumotlarni olish uchun ishlatiladigan funksiya
public Cursor queueAll(){ String[] columns = new
String[]{KEY_ID, ism, familya};
Cursor cursor = sqLiteDatabase.query(MYDATABASE_TABLE,
columns, null, null, null, null, null);
return cursor; }
Endi SqliteAdapter imiz dan yangi object yaratamiz va database ga yozish
uchun ruxsat beruvchi funksiyani ishga tushiramiz:
mySQLiteAdapter = new SQLiteAdapter(this);
mySQLiteAdapter.openToWrite();
Database dagi barcha ma’lumotlarni oluvchi funksiyani ishga tushiramiz:
cursor = mySQLiteAdapter.queueAll(); SimpleCursorAdapter —
bu Adapter bizga databasedagi malumotlarni ro’yhatda ko’rsatishga yordam
beradi. Databasedan barcha ma’lumotlarni olganimizdan keyin uni ListView ga
joylaymiz:
String[] from = new String[]{SQLiteAdapter.KEY_ID, SQLiteAdapter.ism,
SQLiteAdapter.familya}; int[] to = new int[]{R.id.id, R.id.text1, R.id.text2};
cursorAdapter = new SimpleCursorAdapter(this, R.layout.row, cursor, from,
to); opennetchilar.setAdapter(cursorAdapter);
Endi Button tugmalari bilan ishlash qoldi yani yangi ma’lumot qo’shish
tugmasi va barcha ma’lumotlarni o’chirish tugmasi:
Button.OnClickListener buttonAddOnClickListener = new
Button.OnClickListener(){ @Override public void onClick(View arg0)
{ // TODO Auto-generated method stub String data1 =
ism.getText().toString();
String data2 = familya.getText().toString();
mySQLiteAdapter.insert(data1, data2);
updateList(); }
};
Button.OnClickListener buttonDeleteAllOnClickListener = new
Button.OnClickListener(){ @Override public void onClick(View arg0)
{ // TODO Auto-generated method stub mySQLiteAdapter.deleteAll();
updateList(); }
};
Endi Dasturni ishga tushiramiz va ma’lumot kiritib Add tugmasini bosamiz: