Una guía para principiantes de la biblioteca de persistencia de habitaciones

No es una tarea difícil para un desarrollador de Android convertir datos sin procesar en una base de datos estructurada para almacenamiento interno. Esto se hace utilizando el lenguaje más confiable: SQL. La biblioteca central incorporada de SQLite se encuentra dentro del sistema operativo Android. Manejará las operaciones CRUD (Crear, Leer, Actualizar y Eliminar) requeridas para una base de datos. Las clases e interfaces de Java para SQLite las proporciona android.database. SQLite mantiene un sistema de gestión de bases de datos eficaz. Pero este método convencional tiene sus propias desventajas.

  • Tienes que escribir un código repetitivo largo, que llevará mucho tiempo y será propenso a cometer errores.
  • Es muy difícil administrar consultas SQL para una base de datos relacional compleja.

Para superar esto, Google ha introducido la biblioteca de persistencia de habitaciones. Esto actúa como una capa de abstracción para las API de SQLite existentes. Todos los paquetes, parámetros, métodos y variables necesarios se importan a un proyecto de Android mediante anotaciones simples.

Echemos un vistazo a cómo implementar esto con un ejemplo.

1. Agregue las dependencias de gradle en el archivo build.gradle.

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

2. Cree una clase de modelo de datos para la tabla de la base de datos y anote el nombre de la tabla y la clave principal.

@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. Cree una clase de interfaz para el acceso a la base de datos. Cree métodos abstractos para operaciones CRUD. Agregue una consulta SQL personalizada como método.

@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. Cree una clase de base de datos para la implementación de la base de datos.

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

5. Declare e inicialice un objeto para la clase Base de datos en su clase Actividad o Fragmento.

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

Los pasos iniciales están hechos. Al utilizar el objeto de base de datos, puede realizar todas las funcionalidades para la gestión de la base de datos.

Ejemplo de código de inserción:

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

Utilice siempre un Thread, AsyncTask o cualquier hilo de trabajo para realizar operaciones de base de datos.

Para obtener más información, consulte:

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

¡Experimente una codificación perfecta ahora que hay ESPACIO para mejorar!

Publicado originalmente en thinkpalm.com.