建立資料表並新增、查詢資料

TableName.java

public class TableName extends RealmObject {
    // 其他可作為欄位的基本型態有
    // boolean, byte, short, ìnt, long, float,
    // double, String, Date, byte[]

    // 名稱部份可隨意取名,代表該欄位名稱。
    private int fieldName;

    // 需設定該欄位的 setter 方法
    public void setFieldName(int fieldName) {
        this.fieldName = fieldName;
    }

    // 需設定該欄位的 getter 方法
    public int getFieldName() {
        return fieldName;
    }
}

MainActivity.java

public class MainActivity extends Activity {

    // 設定 Module,指定包含哪些資料表。
    @RealmModule(classes = {TableName.class})
    public static class Module {
    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        // 建立 config 物件,設定資料庫名稱和 module。
        RealmConfiguration config = new RealmConfiguration.Builder(this)
                .name("database_name.realm")
                .setModules(new Module())
                // 如上次以建立過相同名稱資料庫,但欄位結構已經改變時,會刪除舊資料庫,不是實務上的必要動作。
                .deleteRealmIfMigrationNeeded()
                .build();
        // 根據設定建立 realm 物件。
        Realm realm = Realm.getInstance(config);

        // 開始資料庫交易。
        realm.beginTransaction();
        // 這裡清空資料表,只是為了保持乾淨讓執行結果正常,不是實務上的必要動作。
        realm.clear(User.class);
        // 建立資料物件,並設定數值。
        for (int i = 0; i < 10; i++) {
            TableName table = realm.createObject(TableName.class);
            table.setFieldName(i);
        }
        // 完成資料庫交易。
        realm.commitTransaction();

        // 建立查詢資料的 query 物件。
        RealmQuery<TableName> query = realm.where(TableName.class);
        // 取出所有的資料,檢查是否有新增成功。
        RealmResults<TableName> result = query.findAll();
        int size = result.size();
        String text = "";
        // 以迴圈訪問所有查詢出的資料。
        for (int i = 0; i < size; i++) {
            TableName item = result.get(i);
            text += item.getFieldName() + "\n";
        }

        // 顯示結果
        TextView v = new TextView(this);
        v.setText(text);
        setContentView(v);
    }
}