SlideShare a Scribd company logo
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일 금요일

More Related Content

PDF
Data analysis with Tajo
PPTX
Deview RecoPick팀 AWS에서 추쳔 구현하기
PPTX
20151022 elasticsearch 적용및활용_송준이_sds발표용
PPTX
Pro android performance optimization 20171213
PPTX
빅데이터 플랫폼 진화 공개용
PDF
Elastic stack
PDF
[Pgday.Seoul 2017] 1. PostGIS의 사례로 본 PostgreSQL 확장 - 장병진
PDF
Big data analysis with R and Apache Tajo (in Korean)
Data analysis with Tajo
Deview RecoPick팀 AWS에서 추쳔 구현하기
20151022 elasticsearch 적용및활용_송준이_sds발표용
Pro android performance optimization 20171213
빅데이터 플랫폼 진화 공개용
Elastic stack
[Pgday.Seoul 2017] 1. PostGIS의 사례로 본 PostgreSQL 확장 - 장병진
Big data analysis with R and Apache Tajo (in Korean)

What's hot (11)

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

Similar to Yapp a.a 2 2 sugar orm (20)

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

More from Junyoung Lee (14)

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

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일 금요일