Yeni Başlayanlar İçin Oda Kalıcı Kitaplığı Rehberi

Bir Android geliştiricisi için ham verileri dahili depolama için yapılandırılmış bir veritabanına dönüştürmek zor bir görev değildir. Bu, en güvenilir dil olan SQL kullanılarak yapılır. Dahili SQLite çekirdek kitaplığı Android işletim sistemi içindedir. Bir veritabanı için gerekli olan CRUD (Oluşturma, Okuma, Güncelleme ve Silme) işlemlerini gerçekleştirecektir. SQLite için Java sınıfları ve arayüzleri android.database tarafından sağlanır. SQLite, etkili bir veritabanı yönetim sistemi sağlar. Ancak bu geleneksel yöntemin kendi dezavantajları vardır.

  • Hem zaman alan hem de hatalara açık olan uzun ve tekrarlayan kodlar yazmanız gerekir.
  • Karmaşık bir ilişkisel veritabanı için SQL sorgularını yönetmek çok zordur.

Bunun üstesinden gelmek için Google, Oda Kalıcı Kitaplığı'nı tanıttı. Bu, mevcut SQLite API'leri için bir soyutlama katmanı görevi görür. Gerekli tüm paketler, parametreler, yöntemler ve değişkenler, basit ek açıklamalar kullanılarak bir Android projesine aktarılır.

Bunun nasıl uygulanacağına bir örnekle bakalım.

1. build.gradle dosyasına gradle bağımlılıklarını ekleyin.

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

2. Veritabanı tablosu için bir veri modeli sınıfı oluşturun ve tablo adını ve birincil anahtara açıklama ekleyin.

@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. Veritabanı erişimi için bir arayüz sınıfı oluşturun. CRUD işlemleri için soyut yöntemler oluşturun. Yöntem olarak özel SQL sorgusu ekleyin.

@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. Veritabanı uygulaması için bir Veritabanı sınıfı oluşturun.

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

5. Activity veya Fragment sınıfınızdaki Veritabanı sınıfı için bir nesneyi açıklayın ve başlatın.

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

İlk adımlar tamamlandı. Veritabanı nesnesini kullanarak, veritabanı yönetimi için tüm işlevleri yapabilirsiniz.

Örnek Ekleme kodu:

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

Veritabanı işlemlerini gerçekleştirmek için her zaman bir Thread, AsyncTask veya herhangi bir çalışan iş parçacığı kullanın.

Daha fazla bilgi için lütfen şu adrese bakın:

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

Artık iyileştirme ODASI olduğuna göre sorunsuz kodlamayı deneyimleyin!

İlk olarak thinkpalm.com'da yayınlandı.