Skip to content

Instantly share code, notes, and snippets.

@malikkurosaki
Last active October 13, 2019 02:55
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save malikkurosaki/9160e251b440c7071c22e79f0b6bb015 to your computer and use it in GitHub Desktop.
Save malikkurosaki/9160e251b440c7071c22e79f0b6bb015 to your computer and use it in GitHub Desktop.
ralm database android

realm database

catatan v_1

di app gradle

apply plugin: 'realm-android'

di project gradle

classpath "io.realm:realm-gradle-plugin:6.0.0"

buat class MyApp extent Aplication

package dev.malikkurosaki.patungan;

import android.app.Activity;
import android.app.Application;
import android.os.Bundle;

import io.realm.Realm;
import io.realm.RealmConfiguration;

public class MyApplication extends Application {

    @Override
    public void onCreate() {
        super.onCreate();
        Realm.init(this);
        RealmConfiguration config = new RealmConfiguration.Builder()
                .name("PatunganDb8.realm")
                .schemaVersion(2)
                .migration(new MigrasiBaru())
                .build();

        //.migration(new MigrasiBaru())
        Realm.setDefaultConfiguration(config);
        Realm.getInstance(config);
    }

    @Override
    public void onTerminate() {
        super.onTerminate();
        Realm.getDefaultInstance().close();
    }
}

buat migrasi class

package dev.malikkurosaki.patungan;

import io.realm.DynamicRealm;
import io.realm.RealmMigration;
import io.realm.RealmSchema;

public class MigrasiBaru implements RealmMigration {
    @Override
    public void migrate(DynamicRealm realm, long oldVersion, long newVersion) {
        RealmSchema schema = realm.getSchema();
        if (oldVersion == 1){
            realm.getSchema().get("DatabaseOrang")
                    .addField(DatabaseOrang.AGAMA,String.class);
        }
    }
}

buat model pojo class

package dev.malikkurosaki.patungan;

import io.realm.RealmObject;
import io.realm.annotations.PrimaryKey;

public class DatabaseOrang extends RealmObject {

    @PrimaryKey
    public String nama;
    public String umur;
    public String agama;

    public static final String NAMA = "nama";
    public static final String UMUR = "umur";
    public static final String AGAMA = "agama";

    public DatabaseOrang(){

    }

    public DatabaseOrang(String nama, String umur, String agama) {
        this.nama = nama;
        this.umur = umur;
        this.agama = agama;
    }

    public String getAgama() {
        return agama;
    }

    public void setAgama(String agama) {
        this.agama = agama;
    }

    public String getUmur() {
        return umur;
    }


    public void setUmur(String umur) {
        this.umur = umur;
    }

    public String getNama() {
        return nama;
    }

    public void setNama(String nama) {
        this.nama = nama;
    }
}

deklarasi di oncreate

 @Override
    public void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        Realm.init(context);
        realm = Realm.getDefaultInstance();
    }
    

transaksi sederhananya

        /*DatabaseOrang orang = realm.createObject(DatabaseOrang.class,"malik");
        orang.setUmur("12");*//*

        DatabaseOrang updateOrang = realm.where(DatabaseOrang.class).equalTo("nama","malik").findFirst();
        realm.beginTransaction();
        updateOrang.setUmur("23");
        realm.commitTransaction();*/

        /*realm.beginTransaction();
        DatabaseOrang or = realm.createObject(DatabaseOrang.class,DatabaseOrang.NAMA);
        or.setUmur("19");
        realm.commitTransaction();
*/

        DatabaseOrang db = realm.where(DatabaseOrang.class).equalTo(DatabaseOrang.NAMA,DatabaseOrang.NAMA).findFirst();
        if (db == null){
            Log.i(TAG, "init: ya null");
        }


        RealmResults<DatabaseOrang> oranya = realm.where(DatabaseOrang.class).findAll();

        for (DatabaseOrang o : oranya){
            Log.i(TAG, "init: "+o.getUmur());
        }
        
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment