Pozwól, że spróbuję Ci wyjaśnić kilka rzeczy.
W aplikacji łączącej się z bazą danych podajemy nazwę i wersję bazy danych. W takiej sytuacji mogą wystąpić następujące zdarzenia:
1) Brak bazy danych . Może to mieć miejsce na przykład w przypadku programu ustawień początkowych. W takim przypadku sama aplikacja musi utworzyć bazę danych i wszystkie znajdujące się w niej tabele. Co więcej, już pracuje z nowo utworzoną bazą danych.
2) Baza danych istnieje , ale jego wersja jest nieaktualna. Może to być aktualizacja sprawy. Np. nowa wersja programu wymaga dodatkowych pól w starych lub nowych tabelach. W takim przypadku aplikacja musi zaktualizować istniejące tabele i w razie potrzeby utworzyć nowe.
3) Istnieje baza danych i jej aktualna wersja . W takim przypadku aplikacja pomyślnie łączy się z bazą danych i działa.
Jak wiecie fraza „aplikacja musi” jest równoznaczna z frazą „programista musi”, czyli to jest nasze zadanie. Aby poradzić sobie z sytuacjami opisanymi powyżej, musimy stworzyć klasę, która dziedziczy po SQLiteOpenHelper. Nazwij to DBHelper. Ta klasa zapewni nam metody tworzenia lub aktualizacji bazy danych w przypadku ich braku lub przestarzałości.
onCreate
- metoda, która zostanie wywołana, jeśli baza danych, z którą chcemy się połączyć - nie istnieje (to Twój przypadek)