Orma 란?
Orma는 Android용 ORM. 구현은 SQLiteDatabase 래퍼. ActiveAndroid처럼 간단하고, GreenDAO처럼 빠른 ORM을 목표로 개발.
성능은 천하 제일 "Android의 ORM"무도회 (2015 년판) 을 참조.
build.app 2017.01.03일자
dependencies { annotationProcessor 'com.github.gfx.android.orma:orma-processor:4.0.2' compile 'com.github.gfx.android.orma:orma:4.0.2' }
github 설명
1. 개요
@Table, @Column 및 @PrimaryKey로 주석 된 모델 클래스를 정의하고, APK 빌드 명령을 실행하여 도우미 클래스를 생성.
package com.github.gfx.android.orma.example; import com.github.gfx.android.orma.annotation.Column; import com.github.gfx.android.orma.annotation.PrimaryKey; import com.github.gfx.android.orma.annotation.Table; import android.support.annotation.Nullable; @Table public class Todo { @PrimaryKey public long id; @Column(indexed = true) public String title; @Column @Nullable // allows NULL (default: NOT NULL) public String content; @Column public long createdTimeMillis; }
2. 인스턴스
orma-processor에 의해 생성 된 데이터베이스 핸들 OrmaDatabase를 인스턴스화.
OrmaDatabase orma = OrmaDatabase.builder(context).build();
OrmaDatabase를 통해 모델을 만들고, 읽고, 업데이트하고 삭제
Todo todo = ...; // create orma.insertIntoTodo(todo); // prepared statements with transaction orma.transactionSync( -> { // or transactionAsync() to execute tasks in background Inserter<todo> inserter = orma.prepareInsertIntoTodo(); inserter.execute(todo); }); // read orma.selectFromTodo() .titleEq("foo") // equivalent to `where("title = ?", "foo")` .executeAsObservable() // first-class RxJava interface .subscribe(...); // update orma.updateTodo() .titleEq("foo") .content("a new content") // to setup what are updated .execute(); // delete orma.deleteFromTodo() .titleEq("foo") .execute();
반응형
'ide > androidstudio' 카테고리의 다른 글
orma "transformClasses With New Class Shrinker For Debug" (0) | 2017.01.12 |
---|---|
Android ORM (0) | 2017.01.11 |
Android Studio Codestyle Import (0) | 2017.01.09 |
Theme : Consistent Design with AppCompat (0) | 2017.01.06 |
Android Design Support Library (0) | 2017.01.05 |