Realmを使ったデータの保存

programming

Realmを使ったデータ保存のやり方メモ

環境

  • Android Studio 4.1.1
  • Kotlin 1.3
  • 10.0.0-BETA.8

事前準備

build.gradle

dependencies {
        classpath "io.realm:realm-gradle-plugin:10.0.0-BETA.8"
    }
plugins {
    id 'realm-android'
}

保存用の構造体作成

RealmはDBのように特定の構造体を複数保存できるのですがその構造体を先に用意する必要があります。

open class MyData(
    @PrimaryKey var id: ObjectId = ObjectId(),
    var text: String = ""
) : RealmObject()

このとき保存したいデータとは別に@PrimaryKey var idとIDを設定しておかないとデータを取り出せなくなるらしい。

初期化

絶対最初にやる。Main ActivityのonCreateとかに書いておく

Realm.init(this)

書き込み(追加)

Realm.getDefaultInstance().use { realm ->
	realm.executeTransaction {
		val id = ObjectId()	// 読み込み時に使うのでメモしよう
		var data = MyData(id)
		realm.insert(data)
	}
}

読み込み

Realm.getDefaultInstance().use { realm ->
	realm.executeTransaction {
		var datas = realm.where<MyData>().equalTo("id", id)
		var data = datas.findFirst()
		print(data?.text)
	}
}

編集

Realm.getDefaultInstance().use { realm ->
	realm.executeTransaction {
		var datas = realm.where<MyData>().equalTo("id", id)
		var data = datas.findFirst()
		data?.text = "hogehoge"
	}
}

削除

Realm.getDefaultInstance().use { realm ->
	realm.executeTransaction {
		var datas = realm.where<MyData>().equalTo("id", id).findFirst()
		datas?.deleteFromRealm()
	}
}

おまけ

Realmってりあむみたいでかわいいよね

コメント

  1. […] Realmの基本的な使い方まとめ in Kotlin – Qiita 1.概要 RealmはSQLiteに代わる軽量、高速データベースでアプリ開発にも利用できます。 そのRealmが7.0.0になりKotlinの正式ドキュメントも公開されました! せっかくなのでAndroidアプリでの簡単な使い方…qiita.com Kotlin + Realmでシンプルなメモ帳アプリを作ってみた – QiitaRealmを使ってみたくて、CRUDを実装したシンプルなメモ帳アプリを作ってみた。 学んだことやハマったことをメモしておく。 作ったもの ソースコードはこちらから↓ qiita.com Realmを使ったデータの保存Realmを使ったデータ保存のやり方メモ環境Android S… […]

タイトルとURLをコピーしました