Иловалар яратишда маълумотлар базасидан фойдаланиш. SQLite. Сўровлар яратиш. Ишдан мақсад: Андроид тизимида фойдаланувчи интерфейсини яратишда маълумотлар базасидан фойдаланиш, лойиҳага мос маълумотлар базаси, жадваллар ва сўровлар яратиш кўникмаларига эга бўлиш
Масаланинг қўйилиши: Тингловчи вариант бўйича берилган лойиҳани Андроид тизимида ишлаб чиқиш ва илова учун керакли бўлган маълумотларни маълумотлар базасидан ўқиб олиши ва emulator орқали натижа олиши лозим.
Ишни бажариш учун намуна
Мисол: Андроид тизимида AddressBook дастури тузилсин. Дастурда базага янги маълумот қўшиши, киритилган маълумотни ўзгартириш ва ўчириш функциялари мавжуд бўлсин23.
Масаланинг ечилиш:
Илова учун керакли бўлган файллар қуйидагилар
Бу ерда:
DBHelper.java – маълумотлар базасини бошқариш учун
DisplayContact.java – ҳар бир контактга тегишли маълумотни кўрсатиб беради
MainActivity.java – маълумотлар базасидаги мавжуд контактлар рўйҳатини кўрсатади
activity_display_contact.xml – ҳар бир контактга тегишли маълумотни кўрсатувчи лайоут activity_main.xml – мавжуд контактлар рўйҳатини кўрсатувчи лайоут display_contact.xml – меню хусусиятларини (delete, update) ҳосил қилувчи лайоут
mainmenu.xml – янги контак қўшувчи меню лайоути
string.xml – илова элементларидаги матнлар рўйҳати
Ҳар бир файл коди қуйида алоҳида-алоҳида кўрсатилган Дастур дизайни ва менюлар учун xml файллар хусусияти қуйида кўрсатилган. activity_display_contact.xml
"1.0" encoding="utf-8"?>
"app_name">Address Book "action_settings">Settings "hello_world">Hello world! "Add_New">Add New "edit">Edit Contact "delete">Delete Contact "title_activity_display_contact">DisplayContact "name">Name "phone">Phone "email">Email "street">Street "country">City/State/Zip "save">Save Contact "deleteContact">Are you sure, you want to delete it. "yes">Yes "no">No
Асосий activity файлларкўринишиқуйидагича
DBHelper.java
package com.example.addressbook;
import java.util.ArrayList; import java.util.HashMap; import java.util.Hashtable;
import android.content.ContentValues; import android.content.Context; import android.database.Cursor; import android.database.DatabaseUtils; import android.database.sqlite.SQLiteOpenHelper; import android.database.sqlite.SQLiteDatabase;
public class DBHelper extends SQLiteOpenHelper {
public static final String DATABASE_NAME = "MyDBName.db";
public static final String CONTACTS_TABLE_NAME = "contacts"; public static final String CONTACTS_COLUMN_ID = "id";
public static final String CONTACTS_COLUMN_NAME = "name";
public static final String CONTACTS_COLUMN_EMAIL = "email"; public static final String CONTACTS_COLUMN_STREET = "street"; public static final String CONTACTS_COLUMN_CITY = "place"; public static final String CONTACTS_COLUMN_PHONE = "phone";
private HashMap hp;
public DBHelper(Context context)
{
super(context, DATABASE_NAME , null, 1);
}
@Override public void onCreate(SQLiteDatabase db) { // TODO Auto-generated method stub db.execSQL(
"create table contacts " +
"(id integer primary key, name text,phone text,email text, street text,place text)"
);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// TODO Auto-generated method stub
db.execSQL("DROP TABLE IF EXISTS contacts"); onCreate(db);
}
public boolean insertContact (String name, String phone, String email, String street,String place)
{
SQLiteDatabase db = this.getWritableDatabase();
ContentValues contentValues = new ContentValues();
contentValues.put("name", name); contentValues.put("phone", phone); contentValues.put("email", email); contentValues.put("street", street); contentValues.put("place", place);
db.insert("contacts", null, contentValues); return true;
}
public Cursor getData(int id){
SQLiteDatabase db = this.getReadableDatabase();
Cursor res = db.rawQuery( "select * from contacts where id="+id+"", null ); return res;
}
public int numberOfRows(){
SQLiteDatabase db = this.getReadableDatabase();
int numRows = (int) DatabaseUtils.queryNumEntries(db, CONTACTS_TABLE_NAME); return numRows;