출처 http://arabiannight.tistory.com/381
안드로이드에서는 DB에서 가져온 데이터를 쉽게 처리하기 위해서 Cursor 라는 인터페이스를 제공해 줍니다. Cursor는 기본적으로 DB에서 값을 가져와서 마치 실제 Table의 한 행(Row), 한 행(Row) 을 참조하는 것 처럼 사용 할 수 있게 해 줍니다. 개발자는 마치 그 행(Row) 을 가지고 행(Row)에 있는 데이터를 가져다가 쓰는 것 처럼 사용하면 되는 편의성을 제공받게 됩니다.
1) 기본적인 DB 필드 구조.
Cursor는 SQLiteDatabase 에서 얻어오 실제 DB 값을 가지고 마치 테이블의 행(Row)를 하나하나 이동하며 참조하는듯 Data를 처리해 줍니다. 실제 Cursor의 동작은 이렇게 동작한다고 생각하시면 됩니다.
2) Cursor의 동작 원리 : 행(Row) 참조
실제 Cursor가 행(Row)를 참조하기 때문에 Cursor의 위치를 바꿔주는 메서드들이 존재 합니다. 실제 자주 사용하는 메서드들 입니다.
메서드 | 동작 |
Cursor.moveToFirst(); | Cursor를 제일 첫번째 행(Row)으로 이동 시킨다. |
Cursor.moveToNext(); | Cursor를 다음 행(Row)으로 이동 시킨다. |
Cursor.moveToPrevious(); | Cursor를 이전 행(Row)으로 이동 시킨다. |
Cursor.moveToPosition(position); | Cursor를 해당 Position 행(Row)으로 이동 시킨다. |
Cursor.moveToLast(); | Cursor를 마지막 행(Row)으로 이동 시킨다. |
2-1) Cursor의 동작 원리 : 행(Row) 이동
위에서 실제 Cursor의 동작 원리를 살펴 보았는데요. 이번에는 Cursor가 참조하고 있는 DB 테이블의 행(Row) Data를 얻어오는 방법에 대해 알아 보겠습니다.
메서드 | 동작 |
Cursor.getInt(), Cursor.getString(), Cursor.getLong(), Cursor.getBoolean()..... | DB 테이블의 실제 Data를 가지고 옵니다. |
Cursor.getColumnIndex(Streing columnName); | DB 테이블의 해당 필드(컬럼) 이름을 얻어 옵니다. |
Cursor.getPosition(); | Cursor가 가리키고 있는 DB 테이블 행(Row) Position 을 얻어 옵니다. |
Cursor.getColumnName(int columnIndex); | 필드(컬럼) index의 해당하는 필드(컬럼) 이름을 얻어 옵니다. |
Cursor.getCount(); | 커서가 참조 할 수 있는 해당 테이블의 행(Row)의 갯수를 얻어 옵니다. |
Cursor.getColumnNames(); | DB 테이블의 필드(컬럼) 명을 순서대로 배열로 얻어 옵니다. |
Cursor.getColumnCount(); | DB 테이블의 필드(컬럼) 갯수를 얻어 옵니다. |
3) Cursor로 값 가져오기
포스팅에서 언급하는 필드와 컬럼은 같은 개념으로 보시면 됩니다.
3-1) Cursor.getInt(), Cursor.getString(), Cursor.getLong(), Cursor.getBoolean().....
3-2) Cursor.getColumnIndex(Streing columnName);
3-3) Cursor.getPosition();
3-4) Cursor.getColumnName(int columnIndex);
3-5) Cursor.getCount();
3-6) Cursor.getColumnNames();
3-7) Cursor.getColumnCount();
'Program > Android' 카테고리의 다른 글
Android 1일차 - 안드로이드 생명주기 (0) | 2015.08.01 |
---|---|
개발자가 Parse를 사용해야하는 15가지 이유 (0) | 2015.05.07 |
Android Layout (0) | 2014.09.12 |
GoogleMap-API-v2 (0) | 2014.08.23 |
이클립스 PC 와 Android 스마트폰 연결하기. (0) | 2014.08.13 |