Практическая работа №13 Развертывание реализации паттерна Ambassador и сервиса memcache для организации шардированного кэша


Создание базы данных с помощью SQLiteOpenHelper


Download 468.92 Kb.
bet6/14
Sana29.03.2023
Hajmi468.92 Kb.
#1309002
TuriПрактическая работа
1   2   3   4   5   6   7   8   9   ...   14
Bog'liq
prak13 18

Создание базы данных с помощью SQLiteOpenHelper


Самый простой способ управления созданием базы данных и версиями — создать подкласс SQLiteOpenHelper. Он упрощает управление базой данных SQLite, создавая БД, если они не существуют. Необходимо только переопределить методы onCreate() и onUpgrade(), чтобы указать нужное действие для создания или обновления базы данных:
public class SampleDBSQLiteHelper extends SQLiteOpenHelper {
private static final int DATABASE_VERSION = 1;
public static final String DATABASE_NAME = "sample_database";
public SampleDBSQLiteHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase sqLiteDatabase) {
sqLiteDatabase.execSQL(SampleDBContract.Employer.CREATE_TABLE);
}
@Override
public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) {
sqLiteDatabase.execSQL("DROP TABLE IF EXISTS " + SampleDBContract.Employer.TABLE_NAME);
onCreate(sqLiteDatabase);
}
}
Теперь в нашем примере Android database SQLite задаем для нашей базы данных SQLite имя (sample_database). Конструктор вызывает конструктор суперкласса с именем и версией базы данных. В onCreate мы указываем объекту SQLiteDatabase выполнить оператор Employer CREATE_TABLE SQL. Через onUpgrade мы сбрасываем таблицу Employer и создаем ее снова:

Таблица Employer имеет три столбца: namedescription и founded_date. Нажатие кнопки сохранения вызывает метод saveToDB():

В saveToDB() мы получаем ссылку на объект SQLiteDatabase, используя метод getWritableDatabase() из SQLiteOpenHelper. Этот метод создает базу данных, если она еще не существует, или открывает ее, если она уже создана. GetWritableDatabase возвращает объект SQLiteDatabase, который открывает доступ на чтение / запись:
private void saveToDB() {
SQLiteDatabase database = new SampleDBSQLiteHelper(this).getWritableDatabase();
ContentValues values = new ContentValues();
values.put(SampleDBContract.Employer.COLUMN_NAME, binding.nameEditText.getText().toString());
values.put(SampleDBContract.Employer.COLUMN_DESCRIPTION, binding.descEditText.getText().toString());
try {
Calendar calendar = Calendar.getInstance();
calendar.setTime((new SimpleDateFormat("dd/MM/yyyy")).parse(
binding.foundedEditText.getText().toString()));
long date = calendar.getTimeInMillis();
values.put(SampleDBContract.Employer.COLUMN_FOUNDED_DATE, date);
}
catch (Exception e) {
Log.e(TAG, "Error", e);
Toast.makeText(this, "Date is in the wrong format", Toast.LENGTH_LONG).show();
return;
}
long newRowId = database.insert(SampleDBContract.Employer.TABLE_NAME, null, values);
Toast.makeText(this, "The new Row Id is " + newRowId, Toast.LENGTH_LONG).show();
}

Download 468.92 Kb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6   7   8   9   ...   14




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