Kezdő útmutató a szobatisztaság könyvtárhoz

Az Android fejlesztők számára nem nehéz feladat a nyers adatokat strukturált adatbázisokká konvertálni a belső tároláshoz. Ez a legmegbízhatóbb nyelven - SQL. A beépített SQLite magkönyvtár az Android operációs rendszeren belül található. Kezeli az adatbázishoz szükséges CRUD (létrehozás, olvasás, frissítés és törlés) műveleteket. Java osztályokat és interfészeket az SQLite számára az android.database biztosít. Az SQLite hatékony adatbázis-kezelő rendszert tart fenn. De ennek a hagyományos módszernek megvannak a maga hátrányai.

  • Hosszú, ismétlődő kódot kell írnia, amely időigényes, valamint hajlamos a hibákra.
  • Nagyon nehéz összetett relációs adatbázis SQL lekérdezéseit kezelni.

Ennek leküzdésére a Google bevezette a Room Persistence Library-t. Ez a meglévő SQLite API-k absztrakciós rétegeként működik. Az összes szükséges csomagot, paramétert, metódust és változót egyszerű kommentárok segítségével importálják egy Android-projektbe.

Nézzük meg, hogyan lehet ezt megvalósítani egy példával.

1. Adja hozzá a gradle függőségeket a build.gradle fájlba.

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

2. Hozzon létre egy adatmodell osztályt az adatbázis táblához, és jegyezze fel annak táblájának nevét és elsődleges kulcsát.

@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. Hozzon létre egy interfészosztályt az adatbázis-hozzáféréshez. Hozzon létre elvont módszereket a CRUD műveletekhez. Adjon hozzá egyéni SQL lekérdezést metódusként.

@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. Hozzon létre egy adatbázis osztályt az adatbázis megvalósításához.

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

5. Nyissa meg és inicializálja az objektumot az Adatbázis osztályhoz a Tevékenység vagy a Töredék osztályban.

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

A kezdeti lépések megtörténtek. Az adatbázis objektum használatával megteheti az adatbázis-kezelés összes funkcióját.

Minta beszúrási kód:

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

Az adatbázis-műveletek végrehajtásához mindig használjon egy szálat, AsyncTask vagy bármilyen munkaszálat.

További információkért kérjük, nézze meg:

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

Tapasztalja meg a zökkenőmentes kódolást most, amikor a ROOM fejlesztésre vár!

Eredetileg a thinkpalm.com címen jelent meg.