코락 CoRock
코딩하는 락스타
코락 CoRock
  • 분류 전체보기 (393)
    • frameworks (19)
      • spring (19)
      • spring-boot (0)
      • testing (0)
    • languages (94)
      • java (39)
      • kotlin (0)
      • python (42)
      • r (13)
    • libraries (0)
    • programming (239)
      • android (13)
      • c (17)
      • cpp (22)
      • database (18)
      • design-pattern (4)
      • data-structures (11)
      • git (8)
      • hadoop (6)
      • html-css (7)
      • issue (4)
      • javascript (26)
      • jsp (34)
      • os (29)
      • php (6)
      • preferences (19)
      • etc (15)
    • discography (37)
      • k-pop (18)
      • pop (19)
    • blog (3)

블로그 메뉴

  • Programming
  • Java
  • JavaScript
  • Discography
  • K-Pop Songs
  • Pop Songs
  • Blog
  • Guestbook

공지사항

인기 글

태그

  • jsp
  • r
  • Spring
  • 자바스크립트
  • 파이썬
  • javascript
  • CentOS
  • Java
  • python
  • oracle
  • Android
  • linux

최근 댓글

최근 글

티스토리

반응형
hELLO · Designed By 정상우.
코락 CoRock

코딩하는 락스타

programming/android

[Android] SQLite (안드로이드 내장 데이터베이스)

2018. 4. 27. 21:44
반응형

3. SQLite (안드로이드 내장 데이터베이스)

 

3.1 SQLite

3.1.1 임베딩 DB

  • 스마트폰에 내장된 DB
  • 저메모리
  • 빠른 처리속도
  • 오픈소스
  • 표준 SQL 지원
  • 지원하지 않는 기능

 

3.1.2 특징

  1. RIGHT and FULL OUTER JOIN 지원 안함
  2. RENAME TABLE and ADD COLUMN만 지원
  3. ROW triggers 지원
  4. VIEWS in SQLite are read-only
  5. GRANT and REVOKE 지원 안함

 

 

3.2 SQLite API

3.2.1 DB 접속

3.2.1.1 SQLiteOpenHelper

DB 파일명, DB버전 정보 설정(SQLite DB는 파일별로 관리됨)

onCreate: DB 최초 생성 시 한번 호출

onUpgrade: DB 버전이 올라갔을 때만 호출

 

3.2.1.2 SQLiteDatabase에서 DB 연결

getWritableDatabase();
getReadableDatabase();

 

3.2.2 테이블 작업

3.2.2.1 삭제

db.execSQL("DROP TABLE (...)");

 

3.2.2.2 생성

db.execSQL("CREATE TABLE Tbl (id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT, val REAL)");

 

3.2.3 데이터 추가

3.2.3.1 db.execSQL에서 insert, update, delete 실행

db.execSQL("INSERT INTO Tbl (name, val) VALUES ('kim', 8));

 

3.2.3.2 SQLiteDatabase의 insert(), update(), delete() 사용

ContentValue cv = new ContentValues();
cv.put(tbl.name, "kim");
db.insert("tbl", getNullColumnHack(), cv);

 

3.2.4 데이터 조회

3.2.4.1 실행방법

  • rawQuery(): select문 직접 실행
  • query(): 메서드 인자로 각 부분의 값을 넘겨 실행
    테이블명, 컬럼 이름 배열, WHERE 구문, WHERE 인자값, GROUP BY, ORDER, BY HAVING
  • SQLiteQueryBuilder 클래스
    컨텐트 프로바이더에 적용 가능

3.2.4.2 조회 결과는 Cursor 이용

Cursor에서는 여러 건의 결과를 하나씩 받아오면서 처리 가능

 

 

3.3 SQLite Database 관리 도구

3.3.1 console 활용 방법

Android SDK 설치 디렉토리의 platform tools 디렉토리로 이동

# 안드로이드 에뮬레이터로 접속
adb shell

# 루트 사용자로 변경
su

# 데이터베이스 디렉토리로 이동
cd data/data/example.com/ex03_db/databases

# SQLite 로그인 후 product.db 파일 오픈
sqlite3 product.db

# 테이블 목록 확인
.tables

 

 

cmd

cd C:\Users\사용자계정\AppData\Local\Android\sdk\platform-tools

'아예 이 디렉토리를 path 환경 변수에 잡아도 좋다.

 

> insert into product (product_name, price, amount) values

   ('냉장고', 500000, 5);

> select * from product;

 

 

3.3.2 GUI 툴 활용

SqliteExpert 다운로드

 

 

3.4 실습예제

3.4.1 res/layout/main.xml

3.4.2 MainActivity.java

3.4.3 ProductDTO.java

3.4.4 ProductDAO.java

3.4.5 res/layout/product.xml

3.4.6 res/layout/product_row.xml

3.4.7 ProductActivity.java

3.4.8 res/layout/product_add.xml

반응형
저작자표시 비영리 변경금지 (새창열림)
    'programming/android' 카테고리의 다른 글
    • [Android] WebView
    • [Android] 파일 입출력
    • [Android] 데이터 집합 표시 뷰
    • [Android] Android의 개요 & 기본 위젯
    코락 CoRock
    코락 CoRock
    A COder dreaming of being a ROCKstar

    티스토리툴바