[Android] Realm 사용하여 데이터 관리하기

Jinny·2021년 3월 13일
0

Android

목록 보기
22/32
post-thumbnail
post-custom-banner

🚩 Realm 이란?

Realm은 오픈 소스 라이브러리로 모바일에 최적화된 데이터베이스 라이브러리이다.
SQLite와 같은 모바일 전용 데이터베이스이며 빠른쿼리와 교차 플랫폼을 지원한다는 점에서 월등한 속도를 보여주고 있어 인기가 많다.
현재 NoSQL의 대표주자인 'MongoDB'에 인수되었다.

🚩 Realm 설정하기

(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 사용하기

(1) Realm 객체 만들기

Realm.init(this)
// 렘을 이러한 방식으로 초기화 해줘! 라고 하는 config 생성
val config: RealmConfiguration = RealmConfiguration.Builder()
//Migration(데이터 베이스 동기화)가 필요하다면 Realm을 삭제하겠다
.deleteRealmIfMigrationNeeded()
.build()

Realm.setDefaultConfiguration(config)
val realm = Realm.getDefaultInstance() // realm을 얻어온다.

(2) 데이터의 내용을 담을 클래스 만들기

<School.kt>

// 테이블
open class School : RealmObject(){  //open 키워드 통해 열어주기
    var name : String? = null
    var location : String?= null
}

(3) 데이터 저장하기

realm.executeTransaction{                 
	with(it.createObject(School::class.java)){
                    this.name = "부산대학교"
                    this.location = "부산"
	}
}

(4) 데이터 불러오기

realm.executeTransaction {
	//첫번째 줄을 가져와라
	val data = it.where(School::class.java).findFirst()  	
    	Log.d("dattta",""+data)
}

(5) 데이터 삭제하기

realm.executeTransaction { 
	//전부지우기
    	it.where(School::class.java).findAll().deleteAllFromRealm() 
	//첫번째 줄 지우기    
	it.where(School::class.java).findFirst()?.deleteFromRealm()
}
profile
신입 개발자👩‍💻
post-custom-banner

0개의 댓글