Mavzu: Ma’lumotlar bazasi


void create_db(){ InputStream myInput = null


Download 9,22 Kb.
bet3/3
Sana22.06.2023
Hajmi9,22 Kb.
#1647339
1   2   3
Bog'liq
5-Mavzu

void create_db(){

InputStream myInput = null;

InputStream myInput = null;

OutputStream myOutput = null;

try {

File file = new File(DB_PATH);

if(!file.exists()) {

// lokal MBni oqim sifatida oling

myInput = myContext.getAssets().open(DB_NAME);

// Yangi MBga yo'l

String outFileName = DB_PATH;

// Bo'sh ma'lumotlar bazasini ochish

myOutput = new FileOutputStream(outFileName);

// ma'lumotlar baytini baytdan nusxa ko'chiring

// ma'lumotlar baytini baytdan nusxa ko'chiring

byte[] buffer = new byte[1024];

int length;

while((length = myInput.read(buffer)) > 0) {

myOutput.write(buffer, 0, length);

}

myOutput.flush();

}

}

catch(IOException ex){

Log.d("DatabaseHelper", ex.getMessage());

}

finally {

try{

if(myOutput!=null) myOutput.close();

if(myInput!=null) myInput.close();

}

catch(IOException ex){

Log.d("DatabaseHelper", ex.getMessage());

}

}

}

public SQLiteDatabase open()throws SQLException {

return SQLiteDatabase.openDatabase(DB_PATH, null, SQLiteDatabase.OPEN_READWRITE);

}

}

Odatiy bo'lib, ma'lumotlar bazasi /data/data/[paket_nomi]/databases/papkasida ilova uchun ajratilgan tashqi xotirada joylashadi va ma'lumotlar bazasiga to'liq yo'lni olish uchun konstruktorda quyidagi ifoda ishlatiladi: DB_PATH =context.getFilesDir().getPath() + DB_NAME;

Bizga onCreate() usuli kerak emas, chunki o'rnatilgan ma'lumotlar bazasini yaratish shart emas. Ammo bu erda qo'shimcha create_db() usuli aniqlangan, uning maqsadi ma'lumotlar bazasini assets papkasidan DB_PATH o'zgaruvchisida ko'rsatilgan joyga ko'chirishdir.

  • Bizga onCreate() usuli kerak emas, chunki o'rnatilgan ma'lumotlar bazasini yaratish shart emas. Ammo bu erda qo'shimcha create_db() usuli aniqlangan, uning maqsadi ma'lumotlar bazasini assets papkasidan DB_PATH o'zgaruvchisida ko'rsatilgan joyga ko'chirishdir.
  • Bundan tashqari, open() ma'lumotlar bazasini ochish usuli bu erda SQLiteDatabase.openDatabase() usuli yordamida ham aniqlangan.
  • Ulanishni tashkil etishning yangi usuli DatabaseHelper dan activity da foydalanishni o'zgartiradi. Shunday qilib, keling, MainActivity sinfini yangilaylik:

E’TIBORINGIZ UCHUN RAHMAT


Download 9,22 Kb.

Do'stlaringiz bilan baham:
1   2   3




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2025
ma'muriyatiga murojaat qiling