Ръководство за начинаещи за библиотеката за постоянство в стаята

Не е трудна задача за разработчик на Android да преобразува сурови данни в структурирана база данни за вътрешно съхранение. Това се прави с помощта на най-надеждния език - SQL. Вградената основна библиотека на SQLite е в рамките на Android OS. Той ще обработва CRUD (Създаване, четене, актуализиране и изтриване) операции, необходими за база данни. Java класовете и интерфейсите за SQLite се предоставят от android.database. SQLite поддържа ефективна система за управление на база данни. Но този конвенционален метод има своите недостатъци.

  • Трябва да напишете дълъг повтарящ се код, който ще отнеме много време, както и ще бъде склонен към грешки.
  • Много е трудно да се управляват SQL заявки за сложна релационна база данни.

За да преодолее това, Google представи библиотека за устойчивост на стаите Това действа като абстракционен слой за съществуващите API на SQLite. Всички необходими пакети, параметри, методи и променливи се импортират в проект за Android с помощта на прости анотации.

Нека да разгледаме как да приложим това с пример.

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 moviesList); @Query (“SELECT * FROM Movies WHERE movieId = :movieId“) Movies fetchOneMoviesbyMovieId (int movieId); @Update void updateMovie (Movies movies); @Delete void deleteMovie (Movies movies); }

4. Създайте клас база данни за внедряване на база данни.

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

5. Декларирайте и инициализирайте обект за класа база данни във вашия клас 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();

Винаги използвайте Thread, AsyncTask или всякакви работни нишки за извършване на операции с база данни.

За допълнителна информация, моля, разгледайте:

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

Изпитайте безпроблемно кодиране сега, когато има СТАЯ за подобрение!

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