SlideShare une entreprise Scribd logo
1  sur  18
Télécharger pour lire hors ligne
YAPP Advanced Android Study .
Sugar ORM
2013. 7. 25
이준영
13년 7월 26일 금요일
YAPP Advanced Android Study .
ORM 이란? (1)
이미지 출처 : 4 Benefits of Object-Relational Mapping (ORM)
Object-Relational Mapping
객체 지향의 객체(Object) 와
RDB의 데이터를 매핑
13년 7월 26일 금요일
YAPP Advanced Android Study .
ORM 이란? (2)
쉽게 얘기하면, SQL을 사용하지 않고도
DB의 데이터를 쉽게 객체로 만들어 주는 것
WishItem item = new WishItem(itemName, createdTime);
int rowId;
	 	
ContentValues values = new ContentValues();
values.put(WishItemsDbColumns.ITEM_NAME, itemName);
values.put(WishItemsDbColumns.CREATED_TIME, createdTime);
rowId = db.insert(WishItemsDbColumns.TABLE_NAME, null, values);
item.setId(rowId)
WishItem item = new WishItem(itemName,
createdTime);
item.save();
13년 7월 26일 금요일
YAPP Advanced Android Study .
Open Source Android
ORM Libraries
• ActiveAndroid
(https://www.activeandroid.com/)
• SqliteORM
(https://github.com/kremerk/SqliteORM/wiki)
• ORMLite
(http://ormlite.com)
• Storm
(https://code.google.com/p/storm-gen/)
• Green Dao
(http://greendao-orm.com)
• Sugar ORM
(https://github.com/satyan/sugar)
13년 7월 26일 금요일
YAPP Advanced Android Study .
오픈 소스... 마냥 좋은걸까?
13년 7월 26일 금요일
YAPP Advanced Android Study .
시작해 봅시다.
• 다른 ORM Library에 비해 비교적
사용 방법이 단순
• Sugar ORM Libarary 다운로드
https://github.com/satyan/sugar
13년 7월 26일 금요일
YAPP Advanced Android Study .
1.
3.
2.
13년 7월 26일 금요일
YAPP Advanced Android Study .
Sugar ORM 설정 요약
1. 안드로이드 프로젝트 libs 폴더에 라이브러리
를 추가한다.
2. 매니페스트에 Application 클래스를 설정한다
3. 매니페스트에 meta-data 태그를 이용하여 4개
의 프로퍼티를 추가한다.
4. 쓴다.
13년 7월 26일 금요일
YAPP Advanced Android Study .
1. 안드로이드 프로젝트 libs 폴더에 라이브러리를 추가한다.
13년 7월 26일 금요일
YAPP Advanced Android Study .
2. 매니페스트에 Application 클래스를 설정한다
<application
android:name="com.orm.SugarApp"
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="yapp.aa.android.MainActivity_"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
13년 7월 26일 금요일
YAPP Advanced Android Study .
3. 매니페스트에 meta-data 태그를 이용하여
4개의 프로퍼티를 추가한다.
<application ...
// application 내용 생략..
<!-- 메타 데이터 추가 -->
	 <meta-data android:name="DATABASE" android:value="sugar_example.db"/>
	 <meta-data android:name="VERSION" android:value="1"/>
	 <meta-data android:name="QUERY_LOG" android:value="true"/>
	 <meta-data android:name="DOMAIN_PACKAGE_NAME"
	 android:value="yapp.aa.android"/> <!-- 프로젝트의 기본 패키지로 설정-->
</application>
13년 7월 26일 금요일
YAPP Advanced Android Study .
만만한 wishitem 테이블
wishitem tablewishitem table
열 이름 타입
name String
created_time String
13년 7월 26일 금요일
YAPP Advanced Android Study .
WishItem Class
• 테이블 (릴레이션)과 매핑할 클래스 작성
• com.org.SugarRecord를 상속해야 함
• Context 를 매개변수로 하는 생성자 작성
13년 7월 26일 금요일
YAPP Advanced Android Study .
com.orm.SugarRecord 상속
Constructors from superclass 체크
13년 7월 26일 금요일
YAPP Advanced Android Study .
public class WishItem extends SugarRecord {
	 private String name;
	
	 private String createdTime;
	 public WishItem(Context context) {
	 	 super(context);
	 }
	 public WishItem(Context context, String name, String createdTime) {
	 	 super(context);
	 	 this.name = name;
	 	 this.createdTime = createdTime;
	 }
	 public String getName() {
	 	 return name;
	 }
	 public void setName(String name) {
	 	 this.name = name;
	 }
	 public String getCreatedTime() {
	 	 return createdTime;
	 }
	 public void setCreatedTime(String createdTime) {
	 	 this.createdTime = createdTime;
	 }
}
name, createdTime 필드 추가
생성자, 게터/세터 추가
13년 7월 26일 금요일
YAPP Advanced Android Study .
SugarRecord
methods
• save()
DB에 없는 경우 insert,
DB에 있는 경우 update
• delete()
row 삭제
• get/set Id()
row ID get/set
13년 7월 26일 금요일
YAPP Advanced Android Study .
SugarRecord
static methods
13년 7월 26일 금요일
YAPP Advanced Android Study .
http://satyan.github.io/sugar/ 영어지만 쉽게 되어있음
13년 7월 26일 금요일

Contenu connexe

Tendances

Daum내부 Hadoop 활용 사례 | Devon 2012
Daum내부 Hadoop 활용 사례 | Devon 2012Daum내부 Hadoop 활용 사례 | Devon 2012
Daum내부 Hadoop 활용 사례 | Devon 2012
Daum DNA
 
Hadoop설명
Hadoop설명Hadoop설명
Hadoop설명
Ji Hoon Lee
 

Tendances (11)

Druid+superset
Druid+supersetDruid+superset
Druid+superset
 
RUCK 2017 - 강병엽 - Spark와 R을 연동한 빅데이터 분석
RUCK 2017 - 강병엽 - Spark와 R을 연동한 빅데이터 분석RUCK 2017 - 강병엽 - Spark와 R을 연동한 빅데이터 분석
RUCK 2017 - 강병엽 - Spark와 R을 연동한 빅데이터 분석
 
구글을 지탱하는 기술 요약 - GFS
구글을 지탱하는 기술 요약 - GFS구글을 지탱하는 기술 요약 - GFS
구글을 지탱하는 기술 요약 - GFS
 
Firestore
FirestoreFirestore
Firestore
 
GRUTER가 들려주는 Big Data Platform 구축 전략과 적용 사례: GRUTER의 빅데이터 플랫폼 및 전략 소개
GRUTER가 들려주는 Big Data Platform 구축 전략과 적용 사례: GRUTER의 빅데이터 플랫폼 및 전략 소개GRUTER가 들려주는 Big Data Platform 구축 전략과 적용 사례: GRUTER의 빅데이터 플랫폼 및 전략 소개
GRUTER가 들려주는 Big Data Platform 구축 전략과 적용 사례: GRUTER의 빅데이터 플랫폼 및 전략 소개
 
Daum내부 Hadoop 활용 사례 | Devon 2012
Daum내부 Hadoop 활용 사례 | Devon 2012Daum내부 Hadoop 활용 사례 | Devon 2012
Daum내부 Hadoop 활용 사례 | Devon 2012
 
Hadoop설명
Hadoop설명Hadoop설명
Hadoop설명
 
검색 서비스 간략 교육
검색 서비스 간략 교육 검색 서비스 간략 교육
검색 서비스 간략 교육
 
카일린 Kylin, OLAP on hadoop
카일린 Kylin, OLAP on hadoop카일린 Kylin, OLAP on hadoop
카일린 Kylin, OLAP on hadoop
 
An introduction to hadoop
An introduction to hadoopAn introduction to hadoop
An introduction to hadoop
 
Tajo korea meetup oct 2015-spatial tajo
Tajo korea meetup oct 2015-spatial tajoTajo korea meetup oct 2015-spatial tajo
Tajo korea meetup oct 2015-spatial tajo
 

Similaire à Yapp a.a 2 2 sugar orm

Similaire à Yapp a.a 2 2 sugar orm (20)

[162] jpa와 모던 자바 데이터 저장 기술
[162] jpa와 모던 자바 데이터 저장 기술[162] jpa와 모던 자바 데이터 저장 기술
[162] jpa와 모던 자바 데이터 저장 기술
 
Hibernate 기초
Hibernate 기초Hibernate 기초
Hibernate 기초
 
Hacosa j query 4th
Hacosa j query 4thHacosa j query 4th
Hacosa j query 4th
 
스프링프레임워크 & 마이바티스 ☆ 무.료 강의자료 제공 中
스프링프레임워크 & 마이바티스 ☆ 무.료 강의자료 제공 中스프링프레임워크 & 마이바티스 ☆ 무.료 강의자료 제공 中
스프링프레임워크 & 마이바티스 ☆ 무.료 강의자료 제공 中
 
Spring Framework & MyBatis_ 스프링프레임워크 & 마이바티스 /구로오라클학원/ 구로자바학원/ 구로디지털단지역
 Spring Framework & MyBatis_ 스프링프레임워크 & 마이바티스 /구로오라클학원/ 구로자바학원/ 구로디지털단지역 Spring Framework & MyBatis_ 스프링프레임워크 & 마이바티스 /구로오라클학원/ 구로자바학원/ 구로디지털단지역
Spring Framework & MyBatis_ 스프링프레임워크 & 마이바티스 /구로오라클학원/ 구로자바학원/ 구로디지털단지역
 
Daejeon IT Developer Conference Hibernate3
Daejeon IT Developer Conference Hibernate3Daejeon IT Developer Conference Hibernate3
Daejeon IT Developer Conference Hibernate3
 
Ksug2015 jpa5 스프링과jpa
Ksug2015 jpa5 스프링과jpaKsug2015 jpa5 스프링과jpa
Ksug2015 jpa5 스프링과jpa
 
(IT실무교육/국비지원교육/자바/스프링교육추천)#15.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)
(IT실무교육/국비지원교육/자바/스프링교육추천)#15.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)(IT실무교육/국비지원교육/자바/스프링교육추천)#15.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)
(IT실무교육/국비지원교육/자바/스프링교육추천)#15.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)
 
5-4. html5 offline and storage
5-4. html5 offline and storage5-4. html5 offline and storage
5-4. html5 offline and storage
 
One-day-codelab
One-day-codelabOne-day-codelab
One-day-codelab
 
7가지 동시성 모델 람다아키텍처
7가지 동시성 모델  람다아키텍처7가지 동시성 모델  람다아키텍처
7가지 동시성 모델 람다아키텍처
 
Yapp a.a 2 2 android annotations
Yapp a.a 2 2 android annotationsYapp a.a 2 2 android annotations
Yapp a.a 2 2 android annotations
 
overview of spring4
overview of spring4overview of spring4
overview of spring4
 
MyBatis에서 JPA로
MyBatis에서 JPA로MyBatis에서 JPA로
MyBatis에서 JPA로
 
#33.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_스프링프레임워크 강좌, 재직자환급교육,실업자국비지원...
#33.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_스프링프레임워크 강좌, 재직자환급교육,실업자국비지원...#33.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_스프링프레임워크 강좌, 재직자환급교육,실업자국비지원...
#33.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_스프링프레임워크 강좌, 재직자환급교육,실업자국비지원...
 
[2018] MyBatis에서 JPA로
[2018] MyBatis에서 JPA로[2018] MyBatis에서 JPA로
[2018] MyBatis에서 JPA로
 
5-3. html5 device access
5-3. html5 device access5-3. html5 device access
5-3. html5 device access
 
Spring data jpa
Spring data jpaSpring data jpa
Spring data jpa
 
Mongo db 최범균
Mongo db 최범균Mongo db 최범균
Mongo db 최범균
 
Spring portfolio2
Spring portfolio2Spring portfolio2
Spring portfolio2
 

Plus de Junyoung Lee

Plus de Junyoung Lee (14)

Git 더하기 GitHub(Git클라이언트 활용) / Getting started with git+github
Git 더하기 GitHub(Git클라이언트 활용) / Getting started with git+githubGit 더하기 GitHub(Git클라이언트 활용) / Getting started with git+github
Git 더하기 GitHub(Git클라이언트 활용) / Getting started with git+github
 
강의 전 준비(GitHub가입, git 클라이언트 설치)
강의 전 준비(GitHub가입, git 클라이언트 설치)강의 전 준비(GitHub가입, git 클라이언트 설치)
강의 전 준비(GitHub가입, git 클라이언트 설치)
 
Slideshare font test
Slideshare font testSlideshare font test
Slideshare font test
 
Git 더하기 GitHub(구름IDE 환경)
Git 더하기 GitHub(구름IDE 환경)Git 더하기 GitHub(구름IDE 환경)
Git 더하기 GitHub(구름IDE 환경)
 
Git 더하기 GitHub 강의 전 준비
Git 더하기 GitHub 강의 전 준비Git 더하기 GitHub 강의 전 준비
Git 더하기 GitHub 강의 전 준비
 
웹 IDE 비교
웹 IDE 비교웹 IDE 비교
웹 IDE 비교
 
팀프로젝트 활짝 피우기
팀프로젝트 활짝 피우기팀프로젝트 활짝 피우기
팀프로젝트 활짝 피우기
 
Tdd with JUnit 1
Tdd with JUnit 1Tdd with JUnit 1
Tdd with JUnit 1
 
TDD with JUnit 2
TDD with JUnit 2TDD with JUnit 2
TDD with JUnit 2
 
Dropbox 꿀팁
Dropbox 꿀팁Dropbox 꿀팁
Dropbox 꿀팁
 
Yapp Advanced Android 3주차 - BaaS.io 이해 및 사용
Yapp Advanced Android 3주차 - BaaS.io 이해 및 사용Yapp Advanced Android 3주차 - BaaS.io 이해 및 사용
Yapp Advanced Android 3주차 - BaaS.io 이해 및 사용
 
Yapp a.a study 2 reflection+annotation
Yapp a.a study 2 reflection+annotationYapp a.a study 2 reflection+annotation
Yapp a.a study 2 reflection+annotation
 
[Yapp aa] 스터디 과제
[Yapp aa] 스터디 과제[Yapp aa] 스터디 과제
[Yapp aa] 스터디 과제
 
Git
GitGit
Git
 

Yapp a.a 2 2 sugar orm

  • 1. YAPP Advanced Android Study . Sugar ORM 2013. 7. 25 이준영 13년 7월 26일 금요일
  • 2. YAPP Advanced Android Study . ORM 이란? (1) 이미지 출처 : 4 Benefits of Object-Relational Mapping (ORM) Object-Relational Mapping 객체 지향의 객체(Object) 와 RDB의 데이터를 매핑 13년 7월 26일 금요일
  • 3. YAPP Advanced Android Study . ORM 이란? (2) 쉽게 얘기하면, SQL을 사용하지 않고도 DB의 데이터를 쉽게 객체로 만들어 주는 것 WishItem item = new WishItem(itemName, createdTime); int rowId; ContentValues values = new ContentValues(); values.put(WishItemsDbColumns.ITEM_NAME, itemName); values.put(WishItemsDbColumns.CREATED_TIME, createdTime); rowId = db.insert(WishItemsDbColumns.TABLE_NAME, null, values); item.setId(rowId) WishItem item = new WishItem(itemName, createdTime); item.save(); 13년 7월 26일 금요일
  • 4. YAPP Advanced Android Study . Open Source Android ORM Libraries • ActiveAndroid (https://www.activeandroid.com/) • SqliteORM (https://github.com/kremerk/SqliteORM/wiki) • ORMLite (http://ormlite.com) • Storm (https://code.google.com/p/storm-gen/) • Green Dao (http://greendao-orm.com) • Sugar ORM (https://github.com/satyan/sugar) 13년 7월 26일 금요일
  • 5. YAPP Advanced Android Study . 오픈 소스... 마냥 좋은걸까? 13년 7월 26일 금요일
  • 6. YAPP Advanced Android Study . 시작해 봅시다. • 다른 ORM Library에 비해 비교적 사용 방법이 단순 • Sugar ORM Libarary 다운로드 https://github.com/satyan/sugar 13년 7월 26일 금요일
  • 7. YAPP Advanced Android Study . 1. 3. 2. 13년 7월 26일 금요일
  • 8. YAPP Advanced Android Study . Sugar ORM 설정 요약 1. 안드로이드 프로젝트 libs 폴더에 라이브러리 를 추가한다. 2. 매니페스트에 Application 클래스를 설정한다 3. 매니페스트에 meta-data 태그를 이용하여 4개 의 프로퍼티를 추가한다. 4. 쓴다. 13년 7월 26일 금요일
  • 9. YAPP Advanced Android Study . 1. 안드로이드 프로젝트 libs 폴더에 라이브러리를 추가한다. 13년 7월 26일 금요일
  • 10. YAPP Advanced Android Study . 2. 매니페스트에 Application 클래스를 설정한다 <application android:name="com.orm.SugarApp" android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name="yapp.aa.android.MainActivity_" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> 13년 7월 26일 금요일
  • 11. YAPP Advanced Android Study . 3. 매니페스트에 meta-data 태그를 이용하여 4개의 프로퍼티를 추가한다. <application ... // application 내용 생략.. <!-- 메타 데이터 추가 --> <meta-data android:name="DATABASE" android:value="sugar_example.db"/> <meta-data android:name="VERSION" android:value="1"/> <meta-data android:name="QUERY_LOG" android:value="true"/> <meta-data android:name="DOMAIN_PACKAGE_NAME" android:value="yapp.aa.android"/> <!-- 프로젝트의 기본 패키지로 설정--> </application> 13년 7월 26일 금요일
  • 12. YAPP Advanced Android Study . 만만한 wishitem 테이블 wishitem tablewishitem table 열 이름 타입 name String created_time String 13년 7월 26일 금요일
  • 13. YAPP Advanced Android Study . WishItem Class • 테이블 (릴레이션)과 매핑할 클래스 작성 • com.org.SugarRecord를 상속해야 함 • Context 를 매개변수로 하는 생성자 작성 13년 7월 26일 금요일
  • 14. YAPP Advanced Android Study . com.orm.SugarRecord 상속 Constructors from superclass 체크 13년 7월 26일 금요일
  • 15. YAPP Advanced Android Study . public class WishItem extends SugarRecord { private String name; private String createdTime; public WishItem(Context context) { super(context); } public WishItem(Context context, String name, String createdTime) { super(context); this.name = name; this.createdTime = createdTime; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getCreatedTime() { return createdTime; } public void setCreatedTime(String createdTime) { this.createdTime = createdTime; } } name, createdTime 필드 추가 생성자, 게터/세터 추가 13년 7월 26일 금요일
  • 16. YAPP Advanced Android Study . SugarRecord methods • save() DB에 없는 경우 insert, DB에 있는 경우 update • delete() row 삭제 • get/set Id() row ID get/set 13년 7월 26일 금요일
  • 17. YAPP Advanced Android Study . SugarRecord static methods 13년 7월 26일 금요일
  • 18. YAPP Advanced Android Study . http://satyan.github.io/sugar/ 영어지만 쉽게 되어있음 13년 7월 26일 금요일