엄코딩의 개발 일지

 Realm



이번 포스팅은 Android Kotlin Realm Examle 입니다.


간단하게 데이터를 저장하고, 해당 데이터에 쿼리를 던져 데이터를 추출하는 Realm 예제 소스 입니다.


Realm 공식 홈페이지 https://realm.io/kr/ 참고하며 학습한 내용을 정리해보았습니다.




1. Realm이란? 


Realm이란 Realm 데이터베이스 컨테이너의 인스턴스입니다.


Realm은 로컬, 동기화, 혹은 인 메모리 방식으로 사용할 수 있습니다.



2. gradle 설정


첫 번째, 프로젝트 레벨의 build.gradle에 classpath 추가


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



두 번째, 앱 레벨의 build.gradle에 플러그인 추가


apply plugin: 'realm-android'
apply plugin: 'kotlin-kapt'

4. 중요 소스

Realm.init(this)

realm = Realm.getDefaultInstance()


Realm 객체를 초기화하고, 기본 인스턴스를 얻습니다.

realm.executeTransaction { realm -> realm.deleteAll() }


executeTransaction을 람다식과 함께 사용하여 간단한 코드로 모든 realm 객체를 삭제할 수 있습니다.

realm.close()


realm 꼭 닫는 것을 잊지마세요.

realm.executeTransaction { realm ->
//Add a Person
val person = realm.createObject(Person::class.java,0)
person.name = "Seonoh"
person.age = 27
}

위의 코드처럼 간단하게 person 객체를 만들 수 있습니다.

Realm 공식홈페이지에서는 <Person>과 같이 사용하는데, 이 소스가 되지않아 위와 같은 소스로 수정했습니다.

그 이유는 Kclass가 아니라 Java class를 원하고 있기 때문에 Person::class.java 로 작성했습니다.

( 뒤에 0은 제가 프라이머리 키로 설정한 부분입니다. )


val person = realm.where(Person::class.java).findFirst()!!
첫 번째 person인 name = "Seonoh" age = 27  찾게됩니다.

val results = realm.where(Person::class.java).equalTo("age",27).findAll()
"age"가 27인 person 객체 수를 results에 저장할 수 있습니다.


Kotlin 전체 예제 소스는 Realm 공식 홈페이지 예제를 참고하시면 됩니다.





'Android > Realm' 카테고리의 다른 글

realm 레코드 순서  (0) 2019.01.17