niedziela, 5 sierpnia 2018

Room - kilka słów o przechowywaniu danych

  1. Dodaj odpowiednie zależności do build.gradle(Module: app)
    def room_version = "1.1.1"
    implementation "android.arch.persistence.room:runtime:$room_version"
    annotationProcessor "android.arch.persistence.room:compiler:$room_version"
    testImplementation "android.arch.persistence.room:testing:$room_version"
  2. Zsynchronizuj build.gradle
    1. kliknij prawym przyciskiem na build.gradle
    2. wybierz Synchronize build.gradle
  3. Dodaj klasę obiektu, który będzie reprezentował tabelę
    1. Daj jej annotację @Entity
    2. Dodaj kolumnę @PrimaryKey
    3. Dodaj pozostałe kolumny
    4. Dodaj gettery i settery elementów obiektu (na potrzeby Room)
      @Entity
      public class StoryObject {
          @PrimaryKey
          private int storyId;
          @ColumnInfo(name = "main_text")
          private String mainText;
  4. Stwórz interfejs z metodami dostępu do bazy - DAO
    1. Daj jej annotację @Dao
    2. Dodaj metody dostępu (napisane w SQL)
      @Dao
      public interface StoryDao {
          @Query("SELECT * FROM story")
          List<StoryObject> getAll();
          @Insert
          void insertAll(StoryObject... objects);
          @Delete
          void delete(StoryObject object);
      }
  5. Stwórz klasę (abstract) bazy danych
    1. Dodaj jej annotację @Database i przypisz klasy, które ją reprezentują (entities)
    2. Dodaj metodę (abstract), która zwróci odpowiedni obiekt Dao
      @Database(entities = {StoryObject.class}, version = 1)
      public abstract class StoryDatabase extends RoomDatabase {
          public abstract StoryDao getStoryDao();
      }
  6. W kodzie aplikacji wywołaj budowanie bazy danych
    StoryDatabase db = Room.databaseBuilder(getApplicationContext(),
            StoryDatabase.class, "story_database").build();

Brak komentarzy:

Prześlij komentarz