11월, 2017의 게시물 표시

android Realm 데이터베이스 연동 하기(2) - 활용

지난 시간에 이어서 Realm DB에 대해 알아볼까 합니다. 오늘은 android에서 간단한 활용법을 알아보겠습니다. 모델클래스를 만들어 보도록 하겠습니다. public class User extends RealmObject { private String name ; private int age ; public String getName ( ) { return name ; } public void setName ( String name ) { this . name = name ; } public int getAge ( ) { return age ; } public void setAge ( int age ) { this . age = age ; } } 모델클래스의 형태는 기존의 모델들과 크게 다르지는 않고  RealmObject를 상속 받았는 것이 특징 입니다. 모델클래스로 객체를 생성해서 저장하면 되기때문에 모델클래스 하나가 테이블 하나라고 생각하면 이해하기 쉬울 것입니다. Realm realm = Realm . getDefaultInstance ( ) ; realm . beginTransaction ( ) ; User user = realm . createObject ( User . class ) ; user . setName ( " John " ) ; user . setAge ( " 30 " ) ; realm . commitTransaction ( ) ; Insert 하는 부분입니다. createObject 함수를 통해 Realm 모델 객체를 생성 하고 DB에 저장 됩니다. Realm realm = Realm . getDefaultInstance ( ) ; User user = new User ( )

android Realm 데이터베이스 연동 하기(1) - 설정

이미지
android에서 로컬에 데이터를 저장한다면 어떤 방법을 사용 하시나요? 이 물음에 답을 생각하면 제일 처음 고민 하는 것은 첫번째로 DB를 사용 할까 SharedPreferences를 사용할까를 생각 하게 되는 것 같습니다. SharedPreferences경우에는 간단하게 데이터를 저장하고 불러오기 편하여 많이 사용하지만 구현해야할 사항에 따라 DB를 생각해야 하는 경우가 생깁니다. 기본적으로는 android에서는 SQLite를 제공하여 구현할수 있지만 SQL에 대한 개념이 있다면  쉬울수 있고 모르면 어려울수도 있는 부분들이 생기기 때문에 보다 쉽게 구현할수 있는 방법은 없을까 생각하면서 찾는다면 Realm이란 모바일DB가 쉽게 검색 될 것입니다. 1. Realm 이란?  오픈소스로 모바일에 최적화된 데이터베이스 라이브러리 입니다.   ORM이 아닌 데이터컨테이너 모델을 사용하고 데이터객체는 Realm에 객체로 저장됩니다.  <특징>   - 네이티브 객체 저장   - zero-copy : 데이터베이스 안팎으로 복사없이 그대로 직접 작업 가능   - 라이브 오브젝트 패턴 : Reaml에 저장된 객체의 인스턴스가 있고 다른곳에서 해당 인스턴스 업데이트시 기존 인스턴스도 업데이트   - 크로스 플랫폼   - 오프라인-우선   - ACID 준수  <성능>   2. android에서 Realm 연동  1) gradle 설정 buildscript { repositories { jcenter ( ) } dependencies { classpath " io.realm:realm-gradle-plugin:3.5.0 " } } 프로젝트 수준의 build.gradle 파일에 위와 같이 추가합니다. apply plugin: 'realm-android' realm-android 플러그인을 애