Anroid ile ORM (Object Relational Mapping) kullanarak veritabanı işlemlerinizi oldukça kolay yapabilirsiniz.

ActiveAndroid kütüphanesi ORM kütüphanelerinden biridir.

Kütüphaneyi buradan indirebilirsiniz.

Kullanımı oldukça basittir. Sadece birkaç noktaya özellikle dikkat edilmesi gerekiyor. Bunlardan biri oluşturmuş olduğunuz tabloya yeni alanlar eklediğiniz de tablonuzu güncellemek. Veya herhangi bir sebeple tabloda çeşitli işlemler yapmak.

Aşağıda kısaca Tablo oluşturmaktan ve gerektiğinde Tablo yu nasıl güncelleyeceğimizden bahsedicem.

@Table(name = "Items")
public class ModelSampleItem extends Model {

    @Column(name = "Name")
    public String name;

    @Column(name = "Surname")
    public String surname;

    @Column(name = "Phone")
    public String phoneNumber;

    @Column(name = "Xyz")
    public String xyz;

    @Column(name = "EMail")
    public String email;

    @Column(name = "TryColumn")
    public String tryColumn;


    @Column(name = "Column3")
    public String column3;

    

    public ModelSampleItem() {
        super();

    }
}

Yukarıda ki yapıyı kullanarak istediğiniz Tablo yu oluşturmanız mümkün.

Tabi bundan önce yapmamız gereken birkaç ayar var.

Android uygulamamızın Manifest dosyasına custom Application Name tanımlıyoruz ve bu isimde bir Class oluşturuyoruz.

<application
    android:name=".app.AppController"

ve Application dan türeyen sınıfımız

public class AppController extends com.activeandroid.app.Application {


    @Override
    public void onCreate() {
        super.onCreate();

    }
}

com.activeandroid.app.Application

Yukarıda ki sınıftan türetmek aslında onCreate() içerisinde ActiveAndroid.initializ(this) ile aynı anlama gelmektedir.Ama yukarıda ki gibi yaparsak daha güzel bir görünüm olacaktır.

Ve aşağıdaki meta-taglarını <application> tagları arasıne ekliyoruz.

<meta-data
    android:name="AA_DB_NAME"
    android:value="newiztop1.db" />
<meta-data
    android:name="AA_DB_VERSION"
    android:value="1" />

Yapılandırma ayarlarımız bu kadar. Artık Items benzeri tablolarınızı yukarıda ki gibi yazmanız ve uygulamanızı çalıştırmanız yeterli olacaktır.

Yukarıda ki tabloya sonradan bir alan eklememiz gerekti. Uygulamamız büyüdükçe nelere ihtiyacı olacağını kestirmek imkansıza yakındır.

@Column(name = "Column4")
    public String column4;

Alanımızı Items sınıfımıza ekliyoruz. Ama çalıştırdığımız da uygulamamız hata verecektir.

Uygulamamıza yeni alan eklediğimizi bildirmek için biraz kıvranmamız gerekmekte.

Öncelikle assets klasörünün içine migrations isilmli bir klasör oluşturuyoruz. Bu ismi vermek zorunludur. assets/migrations

Ve oluşturduğumuz migrations klasörüne 2.sql isimli bir dosya oluşturuyoruz.Niye 2 peki?

<meta-data
    android:name="AA_DB_NAME"
    android:value="newiztop1.db" />

<meta-data
    android:name="AA_DB_VERSION"
    android:value="1" />

Android Manifest dosyasına yapılandırırken DB_VERSION olarak 1 verdik. Bura da belirttiğimiz sayının bir fazlası olması gerekiyor *.sql dosyamızın ismi.

Ve 2.sql dosyamızın içine

BEGIN TRANSACTION;
ALTER TABLE Items ADD COLUMN Column4 TEXT;
COMMIT;

ekliyoruz.

Ve çalıştırdığımız da Items tablomuza Column4 isimli bir alan eklenmiş olacaktır.Artık bu alanımızı da gönül rahatlığıyla kullanabiliriz.

Items Tablomuza herhangi bir satır eklemek istersek :

ModelSampleItem msi = new ModelSampleItem();
msi.name = "Aykut";
msi.surname = "Asil";
msi.phoneNumber = "535";
msi.email = "[email protected]";
msi.xyz = "xy<";
msi.Column4 = "merhaba";
msi.save();

dememiz yeterli olacaktır.

Kaydedilmiş bir veriyi okumak istersek :

ModelSampleItem myModel = Model.load(ModelSampleItem.class, 6); // id si 6 olan veriyi getirir

veya

List<ModelSampleItem> listMOdel = new Select().from(ModelSampleItem.class).execute(); // Tüm verileri List şeklinde getirir.

İhityacınıza yönelik sorgulamalar yapabilirsiniz. Tek yapmanız gereken biraz kurcalamak.