본문 바로가기
Android 개발/Room, Realm, Databases

안드로이드 에서 쓰는 핫한 DB, Realm Part1

by Developer88 2016. 12. 24.
반응형

안드로이드에서 쓰는 데이터베이스로 SQLite도 있지만,

요즘엔 Realm도 많이들 쓰시는 것 같아서,

직접 사용해보면서, 정리해보았습니다~.


1. 라이브러리 설정


Realm은 설정하는 것이, 일반 다른 라이브러리들하고는 약간 다른데요.

아래 보시는 것과 같이, build.gradle은 두가지가 있습니다.

Project레벨의 build.gradle과 App레벨의 build.gradle 인데 각각 

다르게 설정을 해주어야 합니다.



먼저 Project레벨부터 보시죠.

buildscript의 레벨의 dependency에 설정부터 해주겠습니다.

>> classpath "io.realm:realm-gradle-plugin:2.2.2"




그리고 나서 App레벨에서도 설정해줍니다.

맨 상단에 이렇게 추가하면 됩니다.

>> apply plugin: 'realm-android'



빠르게 업데이트 되고있는 상황이므로, 설정이 변할 수 있으므로,

설정이 제대로 동작하지 않는다면 아래링크에서 문서를 확인해 볼 필요가 있습니다.

https://realm.io/docs/java/latest/



2. 모델 생성


제일 먼저 하는 일은 데이터 모델을 정의하는 일입니다.

이 때 RealmObject를 상속받습니다. 

@Required 나 @Primary 같은 Annotation을 사용할 수 있는데요.

빠지면 않되는 name부분을 Required라고 하겠습니다.

(추후, 글에서 일대다 같은 관계설정과 annotation에 대해 정리할 예정입니다~)




2. Realm 초기화 및 객체생성


Realm.init()을 통해서 초기화를 하구요. 

디폴트 환경값으로 Realm객체를 가져오겠습니다. 

참고로 Default값으로 설정하면, 데이터베이스 파일이름도 "default.realm"으로 저장됩니다.





3. Realm객체 이용해 트랜잭션 하기


위에서 얻은 mRealm 객체를 이용해서 SQL처럼 트랜잭션을 해보도록 하겠습니다.

시작시에는 beginTransaction을 끝맺을 때는 commitTransaction을 합니다.


먼저 데이터 객체를 생성하기위해, createObject()라는 메소드를 사용합니다.

만들어진 mStudent라는 객체를 이용해서, CREATE를 해보겠습니다.




참고로 비동기는 executeTransactionAsync()메소드를 사용하면 되는데, 쓰레드에 주의해야 합니다.


4. Query하기


SQL하신 분들은 where라는 단어 익숙하시지요?

여기서는 name이 "동구"인 것을 찾고 있습니다. 

결과가 찾아지면 텍스트뷰에 세팅하도록 하고 있습니다.



이렇게 해서, 일단 Create, Read만 해보면서 Realm에 대해서 간단히 정리해 보았습니다~.

728x90

댓글