Kambario patvarumo bibliotekos vadovas pradedantiesiems

„Android“ kūrėjui nėra sunku užduotis konvertuoti neapdorotus duomenis į struktūrinę duomenų bazę, skirtą vidiniam saugojimui. Tai daroma naudojant patikimiausią kalbą - SQL. Integruota „SQLite“ pagrindinė biblioteka yra „Android“ OS. Jis tvarkys CRUD (kūrimas, skaitymas, atnaujinimas ir ištrynimas) operacijas, reikalingas duomenų bazei. „Java“ klases ir sąsajas SQLite teikia android.database. SQLite palaiko efektyvią duomenų bazių valdymo sistemą. Bet šis įprastas metodas turi savų trūkumų.

  • Turite parašyti ilgą pasikartojantį kodą, kuris užims daug laiko ir bus linkęs į klaidas.
  • Labai sunku valdyti sudėtingos reliacinės duomenų bazės SQL užklausas.

Norėdami tai įveikti, „Google“ pristatė „Room Persistence Library“. Tai veikia kaip esamų SQLite API abstrakcijos sluoksnis. Visi reikalingi paketai, parametrai, metodai ir kintamieji yra importuojami į „Android“ projektą naudojant paprastas anotacijas.

Pažvelkime, kaip tai įgyvendinti, pavyzdžiu.

1. Įtraukite gradlio priklausomybes į failą build.gradle.

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

2. Sukurkite duomenų bazės lentelės duomenų modelio klasę ir pažymėkite jos lentelės pavadinimą ir pagrindinį raktą.

@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. Sukurkite sąsajos klasę prieigai prie duomenų bazių. Sukurkite abstrakčius CRUD operacijų metodus. Pridėkite pasirinktinę SQL užklausą kaip metodą.

@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. Sukurkite duomenų bazės klasę duomenų bazei įgyvendinti.

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

5. Deklaruokite ir pradėkite duomenų bazės klasės objektą savo veiklos ar fragmento klasėje.

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

Atliekami pradiniai veiksmai. Naudodami duomenų bazės objektą, galite atlikti visas duomenų bazės valdymo funkcijas.

Įterpimo kodo pavyzdys:

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

Norėdami atlikti duomenų bazės operacijas, visada naudokite gijas, „AsyncTask“ arba bet kurias darbuotojo gijas.

Norėdami gauti daugiau informacijos, patikrinkite:

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

Patirkite vientisą kodavimą dabar, kai yra KAMBARIO tobulinimo galimybių!

Iš pradžių paskelbta thinkpalm.com.