URI’leri Kullanarak Veri Okuma
URI’leri Kullanarak Veri Okuma
Artık URI’leri kullanarak bir içerik sağlayıcıdan nasıl veri alacağınızı biliyorsunuz. Tıpkı bir web sitesinin belirli bir kök URL’ye dayalı bir dizi farklı URL’ye izin vermesi gibi, bir içerik sağlayıcı da bir dizi URI’ye izin verebilir. Bir içerik sağlayıcı tarafından tanımlanan URI’ler o sağlayıcıya özgü olduğundan, bu URI’lerin belgelenmesi ve istemcilerin görüp araması için kullanılabilir olması önemlidir. Android ile gelen sağlayıcılar, bu URI dizilerini temsil eden sabitleri tanımlayarak bunu kolaylaştırır.
Contacts.People.CONTENT_URI’nin People sınıfında bir sabit olarak nasıl önceden tanımlandığına dikkat edin. Bu örnekte, kod kök URI’yi alır, buna belirli bir kişi kimliği ekler ve ManagedQuery yöntemine bir çağrı yapar.
Bu URI’ye karşı yönetilen sorgunun bir parçası olarak, bir sıralama düzeni, seçilecek sütunlar ve bir where yan tümcesi belirtmek mümkündür. Bu ek parametreler, bu örnekte null olarak ayarlanmıştır.
Bir içerik sağlayıcı, bir dizi arabirim uygulayarak veya sütun adlarını sabitler olarak listeleyerek hangi sütunları desteklediğini listelemelidir. Bununla birlikte, sütunlar için sabitleri tanımlayan sınıf veya arabirim, sütun türlerini de netleştirmelidir.
Bir izdüşümün yalnızca sütun adlarını temsil eden bir dizi dizi olduğuna dikkat edin. Dolayısıyla, bu sütunların ne olduğunu bilmiyorsanız, bir projeksiyon oluşturmanın zor olduğunu göreceksiniz. Bu sütun adlarını, URI’yi sağlayan aynı sınıfta, bu durumda Kişiler sınıfında aramalısınız. Bu sınıfta tanımlanan diğer sütun adlarına bakalım.
Kişiler gibi bir veritabanının, sütunlarını ve türlerini açıklamak için her biri bir sınıf veya arabirim tarafından temsil edilen birkaç tablo içerdiğine dikkat etmek de önemlidir. Aşağıdaki URL’de belgelenen android.providers.Contacts paketine bir göz atalım.
Bu sınıfların her biri,contacts.db veritabanında bir tablo adını temsil eder ve her tablo kendi URI yapısını açıklamakla sorumludur. Ayrıca, PeopleColumns gibi sütun adlarını tanımlamak için her sınıf için karşılık gelen bir Columns arabirimi tanımlanır.
Dönen imlece tekrar bakalım: sıfır veya daha fazla kayıt içeriyor. Sütun adları, sırası ve türü sağlayıcıya özeldir. Ancak, döndürülen her satırın, o satır için benzersiz bir kimliği temsil eden _id adlı varsayılan bir sütunu vardır.
İmleci Kullanma
Bir imlece erişmeden önce, bir Android imleci hakkında birkaç şey bilmelisiniz:
• Acursorisatır koleksiyonu.
• İmleç ilk satırdan önce konumlandığı için moveToFirst() kullanmanız gerekir.
• Sütun adlarını bilmeniz gerekir.
• Sütun türlerini bilmeniz gerekir.
• Tüm alan erişim yöntemleri sütun numarasına dayalıdır, bu nedenle önce sütun adını bir sütun numarasına dönüştürmeniz gerekir.
• İmleç rastgele bir imleç olur (ileri ve geri gidebilir ve zıplayabilirsiniz).
• İmleç rastgele bir imleç olduğu için, bir satır sayım kiti isteyebilirsiniz.
Bir Android imleci, içinde gezinmenizi sağlayan bir dizi yönteme sahiptir. Listeleme, bir imlecin boş olup olmadığını nasıl kontrol edeceğinizi ve boş olmadığında imleç üzerinde satır satır nasıl dolaşacağınızı gösterir.
Listelemenin başındaki varsayım, imlecin ilk satırdan önce konumlandırıldığıdır. İmleci ilk satıra konumlandırmak için imleç nesnesi üzerinde moveToFirst() yöntemini kullanırız. İmleç boşsa bu yöntem false döndürür. Ardından, imleçte gezinmek için tekrar tekrar moveToNext() yöntemini kullanırız.
İçerik sağlayıcılar, bir where yan tümcesini geçirmek için iki yol sunar:
• URI aracılığıyla
• Bir dizi yan tümcesi ve bir dizi değiştirilebilir dizi dizisi bağımsız değişkeninin birleşimi yoluyla
Bu yaklaşımların her ikisini de bazı örnek kodlarla ele alacağız.
Kimliği 23 olan bir notu Google notlar veritabanından almak istediğinizi düşünün. Notlar tablosundaki 23. satıra karşılık gelen bir satırı içeren bir imleci almak için Liste 3-23’teki kodu kullanırsınız.
Veri Okuryazarlığı Nedir
Veri Okuryazarlığı pdf
Veri Okuryazarlığı Bölümü
Veri okuryazarlığı hangi Üniversitelerde var
Veri okuryazarlığı özellikleri
Veri Okuryazarlığı Eğitimi
Veri Okuryazarlığı maaş
Veri Okuryazarlığı nasıl öğrenilir
ManageQuery yönteminin where yan tümcesi argümanını boş bıraktık çünkü bu durumda, not sağlayıcının istediğimiz kitabın kimliğini anlayacak kadar akıllı olduğunu varsaydık. Bu kimlik, URI’nin kendisine gömülüdür. Bir anlamda, nerede yan tümcesini geçmek için URI’yi bir araç olarak kullandık. Bu, not sağlayıcının karşılık gelen sorgu yöntemini nasıl uyguladığını fark ettiğinizde belirginleşir.
Bir notun kimliğinin URI’den nasıl çıkarıldığına dikkat edin. Gelen bağımsız değişken uri’yi temsil eden Uri sınıfı, bölümleri çıkarmak için bir yönteme sahiptir.
Bu kısımlara yol parçaları denir; /seg1/seg3/seg4/ gibi / ayırıcıları arasındaki dizelerdir ve konumlarına göre dizine eklenirler. Buradaki URI için, ilk yol segmenti 23 olacaktır. Daha sonra bu 23 kimliğini, QueryBuilder sınıfında belirtilen where yan tümcesine eklemek için kullandık. Sonunda, eşdeğer seçim ifadesi olacaktır.
Not: Uri ve UriMatcher sınıfları, URI’leri tanımlamak ve bunlardan parametreleri çıkarmak için kullanılır. (“URIMatcher’ı URI’leri Anlamak için Kullanma” bölümünde UriMatcher’ı daha ayrıntılı olarak ele alacağız.) SQLiteQueryBuilder, android.database.sqlite içinde bir SQLite veritabanı örneğinde SQLiteDatabase tarafından yürütülecek SQL sorguları oluşturmanıza olanak tanıyan bir yardımcı sınıftır.
WHERE Cümlelerini Kullanma
Artık bir where yan tümcesinde göndermek için bir URI’yi nasıl kullanacağınızı gördüğünüze göre, Android’in açık sütunların bir listesini ve bunlara karşılık gelen değerleri bir where yan tümcesi olarak göndermemize izin verdiği diğer yöntemi düşünün. Bunu keşfetmek için, Listing’te kullandığımız Activity sınıfının ManagedQuery yöntemine bir kez daha göz atalım.
String türünde olan, seçim adlı bağımsız değişkene dikkat edin. Bu seçim dizesi, bir SQL WHERE yan tümcesi olarak biçimlendirilmiş (WHERE’nin kendisi hariç) hangi satırların döndürüleceğini bildiren bir filtreyi (nerede yan tümcesi) temsil eder.
Boş değeri geçmek, verilen URI için tüm satırları döndürür. Seçim dizgisine, seçimde göründükleri sıraya göre selectionArgs değerleri ile değiştirilecek olanları dahil edebilirsiniz. Değerler Dizeler olarak bağlanacaktır.
Bir where yan tümcesini belirtmenin iki yolunuz olduğu için, bir sağlayıcının bu where yan tümcelerini nasıl kullandığını ve her iki where yan tümcesinin de kullanılması durumunda hangi where yan tümcesinin öncelikli olduğunu belirlemekte zorlanabilirsiniz.
Kayıt Ekleme
Şimdiye kadar, URI’leri kullanarak içerik sağlayıcılardan nasıl veri alınacağından bahsettik. Dikkatimizi eklemelere, güncellemelere ve silmelere çevirelim. Önce insert ile başlayalım.
Android, eklenecek tek bir kaydın değerlerini tutmak için android.content.ContentValues adlı bir sınıf kullanır. ContentValues, sütun adlarına ve değerlerine çok benzeyen bir anahtar/değer çiftleri sözlüğüdür. Kayıtları, önce ContentValues içine bir kayıt doldurarak ve ardından android.content.ContentResolver’dan bir URI kullanarak bu kaydı eklemesini isteyerek eklersiniz.
■Not: ContentResolver’ı bulmanız gerekir çünkü bu soyutlama düzeyinde bir veritabanından kayıt eklemesini istemezsiniz; bunun yerine, bir URI tarafından tanımlanan bir sağlayıcıya bir kayıt eklemek istiyorsunuz. ContentResolver, URI başvurusunu doğru sağlayıcıya çözümlemekten ve ardından ContentValues nesnesini söz konusu belirli sağlayıcıya iletmekten sorumludur.
Web sitelerinizi, arama motorlarında en yukarı getirmek adına sizlere 3 adet paket öneriyoruz. Bu paketler sayesinde web siteleriniz aramalarda 1 yıl içerisinde en yukarıya tırmanacaktır.
1) Backlink Paketi 50 $ (Yıllık Ücret)
2) Hızlandırma Paketi 300 $ (Yıllık Ücret)
3) Kelime Yönlendirme Paketi 150 $ (Aylık Ücret)