Android

Android Uygulamalarıyla MongoDB Veritabanı Kullanma

Bildiğiniz üzere, MongoDB haricinde Microsoft SQL Server, Oracle, MySQL ve PostgreSQL gibi birçok veritabanı bulunmaktadır. MongoDB diğer veritabanlarıyla karşılaştırıldığında birçok önemli avantaj sunmaktadır. Özellikle MongoDB veritabanı konusunu seçme nedenlerim: Foursquare, eB...

Tuğba Üstündağ |

13.08.2015

Bildiğiniz üzere, MongoDB haricinde Microsoft SQL Server, Oracle, MySQL ve PostgreSQL gibi birçok veritabanı bulunmaktadır. MongoDB diğer veritabanlarıyla karşılaştırıldığında birçok önemli avantaj sunmaktadır. Özellikle MongoDB veritabanı konusunu seçme nedenlerim:

  • Foursquare, eBay, Adobe, McAfee gibi büyük firmaların yazılımlarında kullandığı veritabanı türüdür.
  • NoSQL veritabanı sistemleri ilişkisel veritabanlarına göre yüksek erişilebilirlik olanağı sunarlar.
  • NoSQL veritabanı sistemleri okuma ve yazma performanslarında göreceli olarak ilişkisel veritabanı sistemlerine göre daha performanslı olabilirler.
  • NoSQL veritabanı sistemleri yatay olarak genişletilebilirler. Binlerce sunucu bir arada küme olarak çalışabilir ve çok büyük veri üzerinde işlem yapabilirler.
  • NoSQL veritabanı sistemleri esnek yapılarından dolayı programlama ve bakım anlamında kolaylık sağlar.
  • NoSQL veritabanı sistemlerinde farklı özelliklere sahip birçok yapılandırma arasından seçim yapma şansınız vardır.
  • NoSQL veritabanı sistemleri birçok açık kaynak kodlu projede ve bulut bilişim teknolojilerine uygun olduğu için maliyet olarak ilişkisel veritabanı yönetim sistemlerine göre daha avantajlıdır.

MongoDB hakkında daha ayrıntılı bilgiye buradan ulaşabilirsiniz.

Şimdi sıra örneğimizi uygulamak için yapmamız gereken birkaç maddeyi anlatacağım. İlk cümlelerimde bahsettiğim üzere, veritabanını uzaktaki bir sunucuda kuracağım. MongoDB veritabanı kurulumunu web sitesi üzerinden ücretsiz sunucu desteği sağlayan MongoLab adındaki hizmeti kullanarak yapacağım. Yapmamız gereken işlemler:

1- https://mongolab.com sitesine kaydoluyoruz.

2- Kullanıcı bilgileriniz giriş yaptıktan sonra, sağ üst köşede user:"kullanici_adi" göreceksiniz, kullanici_adi linkini açıyoruz. 

Yukarda gördüğünüz resimde "Enable Data API access" düğmesine basın. Böylelikle Android uygulamamızdan Data API ile bağlantı kurmuş olduk. Yeşil kutuyla belirttiğim alandan API Key'i kopyalayıp bir metin belgesine kaydedin. Bu bilgiyi Android uygulaması içinde MongoLab ile bağlantı kurmak için hazırlayacağımız URL'de kullanacağız.

3- MongoLab ana sayfaya gelin ve "MongoDB Deployments" bölümünden "Create New" düğmesine tıklayın. Açılan sayfada MongoDB için yeni sunucu oluşturup veritabanı ismini belirleyeceğiz. Yapacağımız ayarlar aşağıdaki resimdeki gibidir. İlk önce "Cloud provider" sonra da ücretsiz sunucu ayarlamak için kırmızıyla işaretlediğimiz alanları seçin. Son olarak "Database Name" alanından veritabanı isminizi yazıp "Create new MongoDB deployment" düğmesine tıklayın.



4- "android" adındaki veritabanımızı oluşturmuş olduk.

Bu veritabanını seçip "android" veritabanına ait Collections oluşturcağız.

Not: Collections, SQL veritabanındaki, veritabanı tablosuna denk gelmektedir. Aşağıdaki ekran görüntüsündeki "Add Collections" düğmesini seçip çıkan popup penceresinden "Collections" isminizi belirleyip "Create düğmesine tıklayın.

Sunucu tarafında MongoDB veritabanımızı oluşturmuş olduk.

 

Uygulama tarafı

Şimdi MongoDB veritabanımıza kayıt ekleme işlemini yapan projeyi indirerek, kod içindeki yorum satırlarında yer alan açıklamaları okumanızı sizden rica edeceğim. Android uygulamamızı çalıştırdığımızda aşağıdaki resim gibi bir ekran göreceksiniz.

Ben örnek olması amacıyla uygulamadaki formdan üç tane kayıt ekledim. MongoLab sitesinden üye giriş yaptım. Veritabanımı seçtikten sonra "Collections"ı seçtim. Aşağıdaki resimde gördüğünüz üzere Android uygulamamın arayüzünden girdiğim kullanıcı bilgilerini MongoDB veritabanıma eklemiş oldum.

Android uygulamalarıyla MongoDB veritabanında işlem yapmak işte bu kadar basit.

 

Kaynaklar

  1. http://kodcu.com/2014/03/nosql-nedir-avantajlari-ve-dezavantajlari-hakkinda-bilgi/
  2. https://michaelkyazze.wordpress.com/2014/05/18/android-MongoDB-mongolab-hosted-sample-app-part-one/
  3. http://lolapriego.com/blog/android-app-MongoDB-mongolab-cloud/
  4. https://mongolab.com/

Tuğba Üstündağ |

13.08.2015

Yorumlar

Balı
07.01.2017 - 08:36

iyi günler hocam yazdığınız çalışma için teşekkür ederim 

bir sorum olacaktı main activity.java sınıfında kaydet butonu tanımlanmamış 

Balı
07.01.2017 - 08:36

Kısa bir sürede cevap verirseniz sevinirim

Rıdvan
09.01.2017 - 10:59

Firebase mi Mongodb mi ?

Mert Özal
16.01.2017 - 07:07
Küçük veya büyük proje farketmezsizin direk olarak database kullanmak güvenli değildir çünkü webservice kullanmadan database'e bağlanmak için java kodlarınızın içine database'in id ve pass ini yazmanız gerekicek ve buda çok kolay bişekilde decompile edilip database inize saldırılabilir demek.
nazlı
11.12.2016 - 07:25

merhaba ben örnek projenize ek olarak kullanıcı tarafından textview a girilen  veri ile db deki verileri karşılaştırmak bunun sonucunda ise kullanıcının girdiği veri eğer db de mevcut ise kullanıcıya bu veri mevcut yazısını ekranda göstermek istiyorum.Ancak nasıl yapacağımı çözemedim.yardımcı olur musunuz?

Geleceği Yazanlar Kullanıcısı
01.04.2016 - 01:31
Biraz geç bir cevap ancak benim gibi arama motorlarından erişenler için bu sayfaya yine de cevap yazmak istedim. Eğer kendiniz için bir kod yazıyorsanız mantıklı, ancak daha büyük bir çapta proje düşünüyorsanız webservice kullanmanız hem güvenlik hem de performans açısından daha sağlıklı bir yöntemdir.
Nuri SEZGİN
18.10.2015 - 09:07

Paylaşım için teşekkürler. Fakat bir sorum olacak. Sizce Client tarafından webservice kullanmadan direkt olarak database kısmına insert yapmak güvenli bir yöntem mi?