628
Rozdział 15.
Tworzenie pomocnika
Tworzenie pomocnika SQLite
Pomocnika SQLite możemy utworzyć, pisząc klasę dziedziczącą po klasie
SQLiteOpenHelper
. W tej klasie musimy przesłonić metody
onCreate()
i
onUpgrade()
. Obie te metody są obowiązkowe.
Pierwsza z tych dwóch metod,
onCreate()
, jest wywoływana w momencie, gdy baza
danych zostaje po raz pierwszy utworzona na urządzeniu. Powinna ona zawierać
cały kod niezbędny do utworzenia tabel bazy danych.
Z kolei metoda
onUpgrade()
jest wywoływana, gdy trzeba zaktualizować bazę danych.
Na przykład jeśli trzeba wprowadzić jakieś zmiany w tabelach już po utworzeniu bazy
danych, to należy je wykonywać właśnie w tej metodzie.
W naszej aplikacji napiszemy klasę pomocnika SQLite o nazwie
CoffeinaDatabaseHelper
.
Aby utworzyć tę klasę w swoim projekcie aplikacji dla kafeterii Coffeina, w eksploratorze
Android Studio wybierz widok
Project, zaznacz pakiet
com.hfad.coffeina
w katalogu
app/src/main, upewnij się, że zostanie ona dodana do pakietu
com.hfad.coffeina
,
a potem wybierz w menu opcję
File/New.../Java Class. Tworzonej klasie nadaj nazwę
CoffeinaDatabaseHelper
, a następnie zastąp jej zawartość wygenerowaną przez
Android Studio poniższym kodem:
¨
Utworzenie bazy danych
¨
Utworzenie tabeli
package com.hfad.coffeina;
import android.database.sqlite.SQLiteOpenHelper;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
class CoffeinaDatabaseHelper extends SQLiteOpenHelper {
CoffeinaDatabaseHelper(Context context) {
}
@Override
public void onCreate(SQLiteDatabase db) {
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
}
Klasa pomocnika SQLite
musi dziedziczyć po klasie
SQLiteOpenHelper.
Metody onCreate() i onUpgrade() są obowiązkowe.
Na razie zostawiliśmy je puste, ale w dalszej części
rozdziału zajmiemy się nimi bardziej szczegółowo.
app/src/main
CoffeinaDatabase
Helper.java
Coffeina
java
com.hfad.coffeina
Aby nasz pomocnik SQLite mógł coś zrobić, musimy uzupełnić kod jego
metod. Dlatego naszym pierwszym zadaniem będzie przekazanie pomocnikowi
informacji na temat bazy danych, którą będzie musiał utworzyć.
Na następnej stronie napiszemy
kod tego konstruktora.
To pełna ścieżka klasy
SQLiteOpenHelper.
Bazy danych SQLite
629
jesteś tutaj
¨
Utworzenie bazy danych
¨
Utworzenie tabeli
Określenie bazy danych
Aby pomocnik SQLite mógł utworzyć bazę danych, będzie potrzebował
dwóch informacji.
W pierwszej kolejności musimy określić nazwę tej bazy. Określenie
nazwy bazy danych sprawia, że pozostanie ona na urządzeniu po
jego zamknięciu. Jeśli nie podamy tej nazwy, to baza danych zostanie
utworzona tylko w pamięci, a po zamknięciu zniknie.
Drugą informacją, którą musimy podać, jest numer wersji bazy danych.
Musi to być liczba całkowita, a jej pierwszą wartością musi być
1
.
Pomocnik SQLite będzie używał tego numeru do określania,
czy bazę danych należy zaktualizować.
Nazwę bazy danych i numer jej wersji określamy, przekazując je
w wywołaniu konstruktora klasy bazowej
SQLiteOpenHelper
.
W naszej aplikacji bazie danych nadamy nazwę „coffeina”,
a ponieważ będzie to pierwsza wersja naszej bazy, będzie ona
miała numer wersji 1. Poniżej przedstawiliśmy kod, który definiuje
te informacje i ich używa (wprowadź te modyfikacje w swojej wersji
pliku
CoffeinaDatabaseHelper.java):
...
class CoffeinaDatabaseHelper extends SQLiteOpenHelper {
private static final String DB_NAME = “coffeina”; // Nazwa bazy danych
private static final int DB_VERSION = 1; // Numer wersji bazy danych
CoffinaDatabaseHelper(Context context) {
super(context, DB_NAME, null, DB_VERSION);
}
...
}
Tworzenie takich baz danych
przechowywanych w pamięci może
być przydatne podczas testowania
aplikacji.
Ten argument reprezentuje bardziej zaawansowane
możliwości związane z kursorami. Kursory poznamy
w następnym rozdziale.
Wywołujemy konstruktor klasy bazowej
SQLiteOpenHelper, przekazując do niego
nazwę i numer wersji bazy danych.
Pomocnik SQLite
Nazwa: „coffeina”
Wersja: 1
app/src/main
CoffeinaDatabase
Helper.java
Coffeina
java
com.hfad.coffeina
Konstruktor określa szczegółowe informacje o bazie danych, ale sama
baza nie jest tworzona podczas jego wywołania. Pomocnik SQLite
czeka z tym aż do momentu, gdy aplikacja będzie chciała uzyskać
dostęp do bazy.
W ten sposób zrobiliśmy już wszystko, co trzeba, by przekazać
pomocnikowi SQLite informacje na temat tworzonej bazy danych.
Kolejnym krokiem jest poinformowanie go, jakie tabele trzeba będzie
w tej bazie utworzyć.
Get Android Programowanie aplikacji. Rusz głową! Wydanie II now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.