de Ajin Augustine

Un ghid pentru începători la biblioteca de persistență a camerei

Un ghid pentru incepatori la biblioteca de persistenta a camerei

Nu este o sarcină dificilă pentru un dezvoltator Android să convertească datele brute într-o bază de date structurată pentru stocare internă. Acest lucru se face folosind cel mai fiabil limbaj – SQL. Biblioteca de bază SQLite încorporată se află în sistemul de operare Android. Acesta va gestiona operațiile CRUD (Creare, Citire, Actualizare și Ștergere) necesare unei baze de date. Clasele și interfețele Java pentru SQLite sunt furnizate de android.database. SQLite menține un sistem eficient de gestionare a bazelor de date. Dar această metodă convențională are propriile sale dezavantaje.

  • Trebuie să scrieți coduri repetitive lungi, care vor consuma mult timp, precum și predispuse la greșeli.
  • Este foarte dificil să gestionați interogările SQL pentru o bază de date relațională complexă.

Pentru a depăși acest lucru, Google a introdus Biblioteca de persistență a camerei. Acesta acționează ca un strat de abstractizare pentru API-urile SQLite existente. Toate pachetele, parametrii, metodele și variabilele necesare sunt importate într-un proiect Android utilizând adnotări simple.

Un ghid pentru incepatori la biblioteca de persistenta a camerei
Adnotări în biblioteca de persistență a camerei

Să aruncăm o privire la cum să implementăm acest lucru cu un exemplu.

1. Adăugați dependențele gradle în fișierul build.gradle.

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

2. Creați o clasă de model de date pentru tabela bazei de date și adnotați numele tabelei și cheia 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. Creați o clasă de interfață pentru acces la baza de date. Creați metode abstracte pentru operațiile CRUD. Adăugați interogare SQL personalizată ca metodă.

@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. Creați o clasă de baze de date pentru implementarea bazei de date.

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

5. Declarați și inițializați un obiect pentru clasa Baza de date din clasa dvs. Activitate sau Fragment.

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

Pașii inițiali sunt finalizați. Utilizând obiectul bazei de date, puteți face toate funcționalitățile pentru gestionarea bazei de date.

Exemplu de cod de inserare:

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

Utilizați întotdeauna un subiect, AsyncTask sau orice fire de lucru pentru a efectua operațiuni de bază de date.

Pentru informații suplimentare, vă rugăm să verificați:

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

Experimentați o codare perfectă acum că există CAMERĂ de îmbunătățit!

Publicat inițial la thinkpalm.com.