Realm은 오픈 소스 라이브러리로 모바일에 최적화된 데이터베이스 라이브러리이다.
SQLite와 같은 모바일 전용 데이터베이스이며 빠른쿼리와 교차 플랫폼을 지원한다는 점에서 월등한 속도를 보여주고 있어 인기가 많다.
현재 NoSQL의 대표주자인 'MongoDB'에 인수되었다.
(1) build.gradle app단 파일에 다음을 추가해준다.
plugins {
id 'kotlin-kapt'
id 'realm-android' //플러그인 가장 밑에 두기!
}
(2) build.gradle module단 파일에 다음을 추가해준다.
dependencies{
classpath 'io.realm:realm-gradle-plugin:10.0.0-ALPHA.1'
}
Realm.init(this)
// 렘을 이러한 방식으로 초기화 해줘! 라고 하는 config 생성
val config: RealmConfiguration = RealmConfiguration.Builder()
//Migration(데이터 베이스 동기화)가 필요하다면 Realm을 삭제하겠다
.deleteRealmIfMigrationNeeded()
.build()
Realm.setDefaultConfiguration(config)
val realm = Realm.getDefaultInstance() // realm을 얻어온다.
<School.kt>
// 테이블
open class School : RealmObject(){ //open 키워드 통해 열어주기
var name : String? = null
var location : String?= null
}
realm.executeTransaction{
with(it.createObject(School::class.java)){
this.name = "부산대학교"
this.location = "부산"
}
}
realm.executeTransaction {
//첫번째 줄을 가져와라
val data = it.where(School::class.java).findFirst()
Log.d("dattta",""+data)
}
realm.executeTransaction {
//전부지우기
it.where(School::class.java).findAll().deleteAllFromRealm()
//첫번째 줄 지우기
it.where(School::class.java).findFirst()?.deleteFromRealm()
}