2015. 10. 28. 22:42ㆍMobile/Android
Android ORM greenDAO
기존 SQLiteOpenHelper 를 쓰다가 퍼포먼스 문제로 여러가지 ORM 을 적용해보는 중...
괜찮은것을 발견해서 적용해봄
일단 예제 소스와 documentation이 아래 공식 싸이트에 잘 나와있습니다.
https://github.com/greenrobot/greenDAO
greenDAO 같은경우 여러가지 라이브러리가 있는데 아래와 같은 문구가 맘에들었음 (APK 파일크기에 크게 지장이없다)
greenDAO’s core library is less than 100k in size, so adding greenDAO does not hurt your APK size.
또한 아래와 같이 객체가 자동으로 만들어짐 오우!!!!
비교 사진 대단한데 !!?
일단 해당 프로젝트에서 New -> New Module 클릭
Java Library 를 클릭해주세요~
Library name , Java package name , Java class name 을 입력 후 피니쉬~
프로젝트안에 dao 라는 폴더가 생김
Main.java - 주석을 한글을 넣으면(인코딩이) 먼가 AAR 꼬이는거 같음
package com.example;
import de.greenrobot.daogenerator.DaoGenerator;
import de.greenrobot.daogenerator.Entity;
import de.greenrobot.daogenerator.Property;
import de.greenrobot.daogenerator.Schema;
import de.greenrobot.daogenerator.ToMany;
public class Main {
public static void main(String[] args) throws Exception {
Schema schema = new Schema(1, "com.example.dao");// 객체가만들어질 위치
Entity person = schema.addEntity("Person"); // Person 테이블추가
person.addIdProperty(); // ID에대한 PK 값
person.addStringProperty("name"); //name에대한 String 필드
person.addStringProperty("comment");//Comment 에대한 String 필드
Entity lease = schema.addEntity("Lease");
lease.addIdProperty();
lease.addStringProperty("item");
lease.addStringProperty("comment");
lease.addLongProperty("leasedate");
lease.addLongProperty("returndate");
/**
* In your greenDAO generator model you must model a property for the foreign key (ID) value. Using t his property, you can add a to-one relation using Entity.addToOne.
*/
Property personId = lease.addLongProperty("personId").getProperty();
lease.addToOne(person, personId);
//foreign key (To-Many Relations)
ToMany personToLease = person.addToMany(lease, personId);
personToLease.setName("leases");
new DaoGenerator().generateAll(schema, "../app/src/main/java");
}
}
build.gradle
apply plugin: 'application'
apply plugin: 'java'
mainClassName = "com.example.Main"
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'de.greenrobot:greendao-generator:2.0.0'
}
Gradle projects 를 열어 :dao -> application -> run 을 실행 시켜줍니다.
빌드 석세스가 뜨면 성공 ~
app/src/main/java -> com.example.dao
기존 - app
build.gradle
dependencies {
compile 'de.greenrobot:greendao:2.0.0'
}
자 이제 테스트를 !!!
DaoMaster.DevOpenHelper helper = new DaoMaster.DevOpenHelper( IntroActivity.this, "ggari.db", null);
db = helper.getWritableDatabase();
daoMaster = new DaoMaster(db);
daoSession = daoMaster.newSession();
personDao = daoSession.getPersonDao();
Person person = new Person(null,"kim","ggari");
personDao.insert(person);
cursor = db.query(personDao.getTablename(), personDao.getAllColumns(), null, null, null, null, null);
DaoLog.d(DatabaseUtils.dumpCursorToString(cursor));
for (int i = 0; i <personDao.loadAll().size() ; i++) {
DaoLog.d(personDao.loadAll().get(i).getName());
}
아주 많은 기능들이 있다 documentation 을 보고 응용 해보자
끝~
'Mobile > Android' 카테고리의 다른 글
android studio google map v2 (2) (1) | 2015.10.29 |
---|---|
android studio google map v2 (1) (0) | 2015.10.29 |
android facebook 연동 (0) | 2015.10.22 |
안드로이드 멀티 클릭 막기 (2) | 2015.10.16 |
안드로이드 스튜디오 AAR 만들기 (0) | 2015.10.09 |