Algajate juhend toapüsivuse raamatukogule

Android-arendaja jaoks pole toorandmete teisendamine sisemälu struktureeritud andmebaasiks keeruline ülesanne. Selleks kasutatakse kõige usaldusväärsemat keelt - SQL-i. Sisseehitatud SQLite tuumikukogu asub Android OS-is. See haldab andmebaasi jaoks vajalikke CRUD (loomine, lugemine, värskendamine ja kustutamine) toiminguid. Java-klassid ja liidesed SQLite jaoks on ette nähtud android.database. SQLite haldab tõhusat andmebaaside haldussüsteemi. Kuid sellel tavapärasel meetodil on omad puudused.

  • Peate kirjutama pika korduva koodi, mis on nii aeganõudev kui ka altid vigadele.
  • Kompleksse relatsiooniandmebaasi SQL-päringuid on väga raske hallata.

Selle ületamiseks on Google kasutusele võtnud Room Persistence Library. See toimib olemasolevate SQLite API-de abstraktsioonikihina. Kõik vajalikud paketid, parameetrid, meetodid ja muutujad imporditakse Androidi projekti lihtsate märkuste abil.

Vaatame näite abil, kuidas seda rakendada.

1. Lisage gradle'i sõltuvused faili build.gradle.

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

2. Looge andmebaasitabeli jaoks andmemudeli klass ning märkige selle tabeli nimi ja esmane võti.

@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. Looge liideseklass andmebaasile juurdepääsuks. CRUD-toimingute jaoks abstraktsete meetodite loomine. Lisage kohandatud SQL-i päring meetodina.

@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. Looge andmebaasi juurutamiseks andmebaasiklass.

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

5. Deklareerige ja vormindage oma klassi Activity või Fragment objekt andmebaasi Database jaoks.

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

Esimesed sammud on tehtud. Andmebaasi objekti abil saate andmebaasi haldamiseks teha kõik funktsioonid.

Proovi sisestamise kood:

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

Andmebaasitoimingute tegemiseks kasutage alati lõime, AsyncTask'i või mis tahes töötaja lõime.

Lisateabe saamiseks vaadake palun:

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

Kogege sujuvat kodeerimist nüüd, kui on ruumi täiustamiseks!

Algselt avaldatud aadressil thinkpalm.com.