Руководство для начинающих библиотеки устойчивости комнаты

1660078822 rukovodstvo dlya nachinayushhih biblioteki ustojchivosti komnaty

Аджина Августина

OGOLzxp0vPDPi7NXMCwZ66jTc2CaYJm981aB

Для разработчика Android несложно превратить необработанные данные в структурированную базу данных для внутренней памяти. Это делается с помощью самого надежного языка – SQL. Встроенная базовая библиотека SQLite находится в ОС Android. Он будет обрабатывать операции CRUD (создание, чтение, обновление и удаление), необходимые для базы данных. Классы Java и интерфейсы SQLite предоставляются базой данных android.database. SQLite поддерживает эффективную систему управления базами данных. Но этот обычный метод имеет свои недостатки.

  • Вы должны написать длинный повторяющийся код, который займет много времени, а также склонен к ошибкам.
  • Очень сложно управлять запросами SQL для сложной реляционной базы данных.

Для преодоления этого Google представил библиотеку устойчивости комнаты. Это действует как уровень абстракции для существующих SQLite API. Все необходимые пакеты, параметры, методы и переменные импортируются в проект Android с помощью простых аннотаций.

XoUsalA8v-rQhUsBaaYGQoRXkFtgxWDH-gI8
Аннотации в библиотеке хранения комнаты

Давайте рассмотрим, как это реализовать на примере.

1. Добавьте зависимости gradle в файл build.gradle.

implementation “android.arch.persistence.room:runtime:1.0.0”annotationProcessor “android.arch.persistence.room:compiler:1.0.0”

2. Создайте класс модели данных для таблиц базы данных и аннотируйте название таблицы и первичный ключ.

@Entity public class Movies { @NonNull @PrimaryKey private String movieId; private String movieName;  public Movies() { }  public String getMovieId() { return movieId; } public void setMovieId(String movieId) { this.movieId = movieId; } public String getMovieName() { return movieName; } public void setMovieName (String movieName) { this.movieName = movieName; } }

3. Создайте класс интерфейса для доступа к базе данных. Создание абстрактных методов для операций CRUD. Разместите специальный SQL-запрос как метод.

@Dao public interface DaoAccess {  @Insert void insertOnlySingleMovie (Movies movies); @Insert void insertMultipleMovies (List<Movies> moviesList); @Query (“SELECT * FROM Movies WHERE movieId = :movieId“) Movies fetchOneMoviesbyMovieId (int movieId); @Update void updateMovie (Movies movies); @Delete void deleteMovie (Movies movies); }

4. Создайте класс Database для реализации базы данных.

@Database (entities = {Movies.class}, version = 1, exportSchema = false) public abstract class MovieDatabase extends RoomDatabase { public abstract DaoAccess daoAccess() ; }

5. Объявите и инициализируйте объект для класса Database в вашем классе Activity или Fragment.

private static final String DATABASE_NAME = “movies_db”; private MovieDatabase movieDatabase; movieDatabase = Room.databaseBuilder(getApplicationContext(), MovieDatabase.class, DATABASE_NAME) .fallbackToDesctructiveMigration() .build();

Начальные шаги сделаны. Используя объект базы данных, можно выполнять все функции управления базой данных.

Образец кода вставки:

new Thread(new Runnable() { @Override public void run() { Movies movie =new Movies(); movie.setMovieId( “2”); movie.setMovieName(“The Prestige”); movieDatabase.daoAccess () . insertOnlySingleMovie (movie); } }) .start();

Всегда используйте потоки, AsyncTask или любые рабочие потоки для выполнения операций с базой данных.

Для получения дополнительной информации см.:

https://developer.android.com/training/data-storage/room/index.html

Почувствуйте бесперебойную кодировку теперь, когда есть МЕСТО для совершенствования!

Первоначально опубликовано на thinkpalm.com.

Добавить комментарий

Ваш адрес email не будет опубликован.