Veritabanı Denetleyicisi ile veritabanınızdaki hataları ayıklayın

Veritabanı Denetleyicisi, uygulamanız çalışırken uygulamanızın veritabanlarını incelemenize, sorgulamanıza ve değiştirmenize olanak tanır. Bu, özellikle veritabanı hata ayıklaması için kullanışlıdır. Veritabanı Denetleyicisi, düz SQLite ile ve SQLite üzerinde oluşturulmuş kitaplıklarla (ör. Room) çalışır.

Veritabanı Denetleyicisi'ni açın

Veritabanı Denetleyicisi'nde bir veritabanı açmak için aşağıdakileri yapın:

  1. Uygulamanızı API düzeyi 26 veya üstünü çalıştıran bir emülatör ya da bağlı cihazda çalıştırın.

  2. Menü çubuğundan Görünüm > Araç Pencereleri > Uygulama Denetleme'yi seçin.

  3. Database Inspector sekmesini seçin.

  4. Menüden çalışan uygulama işlemini seçin.

  5. Çalışmakta olan uygulamadaki veritabanları, Veritabanları bölmesinde görünür. İncelemek istediğiniz veritabanının düğümünü genişletin.

Verileri görüntüleme ve değiştirme

Veritabanları bölmesinde, uygulamanızdaki veritabanlarının bir listesi ve her veritabanının içerdiği tablolar görüntülenir. Bir tablo adını çift tıklayarak verilerini Şekil 1'de gösterildiği gibi sağdaki denetleyici penceresinde görüntüleyin. İnceleyici penceresindeki verileri belirli bir sütuna göre sıralamak için ilgili sütun başlığını tıklayın.

Veritabanı Denetleyicisi penceresinin ekran görüntüsü.
Şekil 1. Veritabanı Denetleyici penceresi.

Bir tablodaki verileri değiştirmek için aşağıdaki adımları uygulayın:

  1. Bir hücreyi çift tıklayın.
  2. Yeni bir değer yazın.
  3. Enter tuşuna basın.

Uygulamanız Room kullanıyorsa ve kullanıcı arayüzünüz veritabanını gözlemlerse (ör. LiveData veya Flow ile), verilerde yaptığınız değişiklikler çalışan uygulamanızda hemen görünür. Aksi takdirde, değişiklikler yalnızca uygulamanız değiştirilen verileri veritabanından okuduğunda görünür.

Canlı veritabanı değişikliklerini göster

Veritabanı Denetleyicisi'nin çalışan uygulamanızla etkileşimde bulunduğunuz sırada sunduğu verileri otomatik olarak güncellemesini istiyorsanız denetleyici penceresinin üst kısmındaki Canlı güncellemeler onay kutusunu işaretleyin. Canlı güncellemeler etkinleştirildiğinde, inceleyici penceresindeki tablo salt okunur olur ve bu tablonun değerlerini değiştiremezsiniz.

Alternatif olarak, verileri manuel olarak güncellemek için inceleyici penceresinin üst kısmındaki Tabloyu yenile düğmesini tıklayın.

Veritabanlarınızı sorgulama

Veritabanı Denetleyicisi, uygulama çalışırken uygulamanızın veritabanında sorgu çalıştırabilir. Uygulamanız, Room kullanıyorsa araç DAO sorgularını kullanabilir ancak özel SQL sorgularını da destekler.

DAO sorgularını çalıştırma

Uygulamanız Room'u kullanıyorsa Android Studio, DAO sınıflarınızda tanımladığınız sorgu yöntemlerini hızlı bir şekilde çalıştırmanızı sağlayan kanal işlemleri sağlar. Bu işlemler, uygulamanız çalışırken ve IDE'de Veritabanı Denetleyicisi açık durumdayken kullanılabilir.

DAO'da herhangi bir sorgu yöntemini çalıştırmak için @Query ek açıklamasının yanındaki Database Inspector'da SQLite ifadesini çalıştır düğmesini tıklayın.

DAO oluk işlemlerinin ekran görüntüsü.
Şekil 2. DAO sorgusu oluk işlemleri.

Uygulamanız birden fazla veritabanı içeriyorsa Android Studio, bir listeden sorgulama yapılacak veritabanını seçmenizi ister. Sorgu yönteminizde adlandırılmış bind parametreleri varsa Android Studio, sorguyu çalıştırmadan önce her parametre için değer ister. Sorgu sonuçları, inceleyici penceresinde görüntülenir.

Özel SQL sorguları çalıştırma

Uygulamanız çalışırken uygulamanızın veritabanlarında özel SQL sorguları çalıştırmak için Database Inspector'ı da kullanabilirsiniz.

Bir veritabanını sorgulamak için aşağıdaki adımları uygulayın:

  1. İnceleyici penceresinde yeni bir sekme açmak için Veritabanları bölmesinin üst kısmındaki Yeni Sorgu sekmesini Aç seçeneğini tıklayın.

    Yeni sorgu sekmesi düğmesini gösteren ekran görüntüsü.
    Şekil 3. Yeni Sorgu sekmesi açın.
  2. Uygulamanız birden fazla veritabanı içeriyorsa Yeni Sorgu sekmesindeki listeden sorgulanacak veritabanını seçin.

  3. Yeni Sorgu sekmesinin üst kısmındaki metin alanına özel SQL sorgunuzu yazın.

  4. Çalıştır'ı tıklayın.

Alternatif olarak, daha önce kullandığınız bir sorguyu çalıştırmak için sorgu geçmişi özelliğini de kullanabilirsiniz:

  1. Seçili veritabanında daha önce çalıştırdığınız sorguların bir listesini görmek için Sorgu geçmişini göster Sorgu geçmişini göster düğmesi
düğmesini tıklayın.

    Sorgu geçmişi açılır menüsünü gösteren ekran görüntüsü.
    Şekil 4. Sorgu geçmişi menüsü.
  2. Düzenleyicide tüm sorgunun önizlemesini görmek için listedeki bir sorguyu tıklayın ve düzenleyiciye kopyalamak için Enter tuşuna basın.

  3. İfadeyi yürütmek için Çalıştır'ı tıklayın.

Yeni Sorgu sekmesinde görüntülenen sorgu sonuçları salt okunurdur ve değiştirilemez. Ancak UPDATE, INSERT veya DELETE gibi değiştirici ifadeler çalıştırmak için özel SQL sorgu alanını kullanabilirsiniz.

Uygulamanız Room'u kullanıyorsa ve kullanıcı arayüzünüz veritabanını gözlemlerse (ör. LiveData veya Flow ile), verilerde yaptığınız tüm değişiklikler çalışan uygulamanızda hemen görünür. Aksi takdirde, değişiklikler yalnızca uygulamanızın değiştirilen verileri veritabanından bir sonraki okumasında görünür.

Çevrimdışı modu

Android Studio 4.2 ve sonraki sürümlerde, bir işlem kesildikten sonra uygulamanızın veritabanlarını incelemeye devam edebilirsiniz. Böylece, kilitlenmeden sonra uygulamanızda hata ayıklaması daha kolay olur.

Bağlantı kesildiğinde, Veritabanı Denetleyicisi veritabanlarınızı indirir ve çevrimdışı modda kullanabilmenizi sağlar. Çevrimdışıyken de tabloları açabilir ve sorgu çalıştırabilirsiniz.

Canlı bir uygulama işlemine yeniden bağlandığınızda, Veritabanı Denetleyicisi çevrimdışı moddan çıkar ve yalnızca cihazdaki verileri gösterir. Diğer bir deyişle, çevrimdışı modda gösterilen veriler bir uygulama işlemine yeniden bağlandığınızda devam etmez. Bu sınırlama nedeniyle, Veritabanı Denetleyicisi, çevrimdışı moddayken verileri düzenlemenize veya değişiklik SQL ifadelerini çalıştırmanıza izin vermez.

Bir veritabanını çevrimdışı modda görüntülerken işlem adında, inceleyicinin artık işleme bağlı olmadığını belirtmek için [DETACHED] bulunur. Ayrıca, veritabanı simgesi Veritabanı
çevrimdışı şekil 5'te gösterilen çevrimdışı durumu belirtir.

Çevrimdışı modda veritabanı denetleyicisi
Şekil 5. Çevrimdışı modda Veritabanı Denetleyicisi.

Veritabanı bağlantılarını açık tut

Veritabanı Denetleyicisi, yalnızca uygulamanız bu veritabanıyla canlı bir bağlantı sürdürürken bir veritabanını değiştirebilir. Yani, uygulamanız sık sık veritabanlarına bağlanıyor ve veritabanlarıyla bağlantısı kesiliyorsa bu veri tabanlarında hata ayıklaması zor olabilir. Veritabanları bölmesinde açık ve kapalı veritabanlarını tanımlamak için simgeler kullanılır.

Ayrıca, veritabanı bağlantılarının kapanmasını önlemek için Veritabanları bölmesinin üst kısmındaki Veritabanı bağlantılarını açık tut seçeneğini Kapalı olarak konumuna getirin.

Verileri Veritabanı Denetleyicisi'nden dışa aktarma

Yerel olarak kaydetmek, paylaşmak veya yeniden oluşturmak için veritabanlarını, tabloları ve sorgu sonuçlarını Veritabanı İnceleyici'den dışa aktarabilirsiniz. Android Studio'da bir uygulama projesi açtığınızda ve ilgili uygulamayı Veritabanı İnceleyici'de incelediğinizde verileri dışa aktarmaya aşağıdaki yöntemlerden birini kullanarak başlayabilirsiniz:

  • Veritabanları panelinde bir veritabanı veya tablo seçin ve panelin üst kısmındaki Dosyaya aktar'ı tıklayın.
  • Veritabanları panelinde bir veritabanını veya tabloyu sağ tıklayın ve içerik menüsünden Dosyaya aktar'ı seçin.
  • Bir sekmede bir tabloyu veya sorgu sonuçlarını incelerken tablonun veya sorgu sonuçlarının üzerindeki Dosyaya aktar'ı tıklayın.

Bir dışa aktarma işlemi seçtikten sonra, Şekil 6'da gösterildiği gibi son adımlarda size yardımcı olması için Veritabanını Dışa Aktar iletişim kutusunu kullanın.

Bir veritabanını, tabloyu veya sorgu sonuçlarını dışa aktarmak istediğinize bağlı olarak verileri DB, SQL veya CSV biçimlerinden birinde veya daha fazlasında dışa aktarabilirsiniz.

Veritabanını Dışa Aktar iletişim kutusu

Şekil 6. Veritabanını Dışa Aktar iletişim kutusu.

Ek kaynaklar

Veritabanı Denetleyicisi hakkında daha fazla bilgi edinmek için aşağıdaki ek kaynaklara bakın:

Blog yayınları

Videolar