Vodič za početnike u knjižnici za postojanost soba

Android programeru nije težak zadatak pretvoriti sirove podatke u strukturiranu bazu podataka za internu pohranu. To se radi pomoću najpouzdanijeg jezika - SQL. Ugrađena knjižnica jezgre SQLite nalazi se u sustavu Android OS. Obrađivat će CRUD (Stvaranje, čitanje, ažuriranje i brisanje) operacije potrebne za bazu podataka. Java klase i sučelja za SQLite pruža baza podataka android.data. SQLite održava učinkovit sustav upravljanja bazama podataka. Ali ova konvencionalna metoda ima svoje nedostatke.

  • Morate napisati dugi ponavljajući kôd, koji će vam oduzimati puno vremena, ali i sklon pogreškama.
  • Vrlo je teško upravljati SQL upitima za složenu relacijsku bazu podataka.

Da bi to prevladao, Google je predstavio biblioteku postojanosti soba. To djeluje kao sloj apstrakcije za postojeće API-je SQLite. Svi potrebni paketi, parametri, metode i varijable uvoze se u Android projekt pomoću jednostavnih napomena.

Pogledajmo kako to primijeniti na primjeru.

1. Dodajte ovisnosti gradle u datoteku build.gradle.

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

2. Stvorite klasu podatkovnog modela za tablicu baze podataka i označite njeno ime tablice i primarni ključ.

@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. Stvorite klasu sučelja za pristup bazi podataka. Stvorite apstraktne metode za CRUD operacije. Dodajte prilagođeni SQL upit kao metodu.

@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. Stvorite klasu baze podataka za implementaciju baze podataka.

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

5. Izjavite i inicijalizirajte objekt za klasu Baza podataka u klasi Aktivnost ili Fragment.

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

Početni koraci su gotovi. Korištenjem objekta baze podataka možete učiniti sve funkcije za upravljanje bazom podataka.

Uzorak Umetni kod:

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

Uvijek koristite nit, AsyncTask ili bilo koje radničke niti za obavljanje operacija baze podataka.

Za dodatne informacije pogledajte:

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

Doživite besprijekorno kodiranje sada kada postoji SOBA za poboljšanje!

Izvorno objavljeno na thinkpalm.com.