Android ile Sugar ORM Kullanımı

Merhaba arkadaşlar bugün Android platformunda olduk popüler ve kullanışlı olan Sugar ORM kullanımını anlatacağım. Öncelikle ORM’in ne olduğundan kısaca bahsedelim. ORM (Object to Relational Mapping) Türkçesiyle  Nesne ile İlişkisel Haritalama/Eşleme. Yani sistem programlama dilinde kullanılabilecek nesne yapısına uygun sanal bir veritabanı oluşturuyor. Bu şekilde veritabanı işlemleri sorgularla uğraşmadan programlama dilininin sınıfları aracılığıyla direkt olarak yapılabiliyor.
Şimdi Sugar ORM kullanımına geçelim. Öncelikle build.gradle(Module.app) dosyamıza projemizde Sugar ORM kullanmak için gerekli olan aşağıdaki gradle ekliyoruz ve derliyoruz.

compile 'com.github.satyan:sugar:1.4'

 

Kütüphaneyi projemize ekledik. Şimdi temel yapılandırmasını yapacağız. Bunun için Android.Manifest dosyamızı açıyoruz. application bilgilerini aşağıdaki gibi güncelliyoruz.

<application android:label="@string/app_name" android:icon="@drawable/icon"
android:name="com.orm.SugarApp">
.
.
<meta-data android:name="DATABASE" android:value="VERİTABANIMIZINADI" />
<meta-data android:name="VERSION" android:value="1" />
<meta-data android:name="QUERY_LOG" android:value="true" />
<meta-data android:name="DOMAIN_PACKAGE_NAME" android:value="PROJEMİZİN_PACKAGE_ADI" />
.
.
</application>

Android.Manifest dosyamızın son hali şu şekilde olacak.

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
          package="com.gencaysahinn.sugarormdemo">

    <application
        android:name="com.orm.SugarApp"
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <meta-data
            android:name="DATABASE"
            android:value="veritabanim.db"/>
        <meta-data
            android:name="VERSION"
            android:value="1"/>
        <meta-data
            android:name="QUERY_LOG"
            android:value="true"/>
        <meta-data
            android:name="DOMAIN_PACKAGE_NAME"
            android:value="com.gencaysahinn.sugarormdemo"/>

 <activity android:name=".MainActivity">
 <intent-filter>
 <action android:name="android.intent.action.MAIN"/>
 <category android:name="android.intent.category.LAUNCHER"/>
 </intent-filter>
 </activity> 
 </application>
</manifest>

Veritabımızı Sugar ORM’e tanıttık ama Sugar ORM bizim sınıflarımızı nasıl tanıyacak? İşte bunun için veritabanında tabloya karşılık gelecek sınıflarımızı SugerRecord sınıfından extends ediyoruz. Örnek olarak Kullanici sınıfında gösterelim.

package com.gencaysahinn.sugarormdemo.models;

import com.orm.SugarRecord;

/**
 * Created by gencaysahinn on 1.12.2016.
 */
public class Kullanici extends SugarRecord {
    String kullaniciadi;
    String sifre;
    String adsoyad;

    public Kullanici()
    {

    }

    public Kullanici(String kullaniciadi, String sifre, String adsoyad) {
        this.kullaniciadi = kullaniciadi;
        this.sifre = sifre;
        this.adsoyad = adsoyad;
    }

    public String getKullaniciadi() {
        return kullaniciadi;
    }

    public void setKullaniciadi(String kullaniciadi) {
        this.kullaniciadi = kullaniciadi;
    }

    public String getSifre() {
        return sifre;
    }

    public void setSifre(String sifre) {
        this.sifre = sifre;
    }

    public String getAdsoyad() {
        return adsoyad;
    }

    public void setAdsoyad(String adsoyad) {
        this.adsoyad = adsoyad;
    }
}

Şimdi temel SQL sorgularını nasıl yapacağımızı görelim.

Yeni kayıt ekleme. INSERT sorgusu

Kullanici kullanici=new Kullanici("gencaysahinn","1234","Gencay Şahin");//Bu bilgilerle yeni bir kullanıcı türettik
kullanici.save(); //Türettiğimiz kullanıcıyı veritabanına kaydettik

Kayıt sorgulama. SELECT sorgusu. Sorgu sonucu bir List’e atıyoruz çünkü sorgumuzun sonucunda kriterlerimize uyan birden fazla kayıt dönebilir.

List<Kullanici> kullaniciList= Kullanici.find(Kullanici.class,
        "kullaniciadi=? and sifre=?",
        "gencaysahinn",
        "1234"); //Kullanıcı adı gencaysahinn şifresi 1234 olan kullanıcıyı sorguladık.

Güncelleme işlemi.UPDATE sorgusu.

Kullanici kullanici=Kullanici.findById(Kullanici.class,1);
kullanici.setSifre("123456");
kullanici.save(); //1 numaralı IDye sahip kullanıcının şifresi 123456 olarak güncelledik

Silme işlemi. DELETE sorgusu

Kullanici kullanici=Kullanici.findById(Kullanici.class,1);
kullanici.delete(); //1 numaral IDye sahip kullanıcıyı sildik.

Tabloda ki bütün kullanıcıları silmek için deleteAll metodunu kullanacağız. Örnek olarak veritabanımızdaki bütün kullanıcıları silelim.

Kullanici.deleteAll(Kullanici.class);

Umarım faydalı olmuştur. Sorularınızı yorumlardan yazabilirsiniz.
 

One thought on “Android ile Sugar ORM Kullanımı”

Leave a Reply

Your email address will not be published. Required fields are marked *