CODEDRAGON ㆍDevelopment/Android
Cursor(커서)
· 데이터베이스나 내용 제공자(Content Provider)의 데이터를 쿼리하여 가져올 때 사용됩니다.
· DB에서 가져온 데이터를 쉽게 처리하기 위해서 Cursor 라는 인터페이스를 제공해 줍니다.
· 데이터베이스에서 커서는 특정 레코드를 가리키는 역할을 합니다.(결과값을 가지고 있는 포인터)
· Select쿼리문으로 데이터를 읽으면 Cursor을 이용하여 데이터의 위치를 가리키고 ArrayList 같은 배열에 데이터베이스에서 읽은 데이터를 저장해주는 역할을 하는 클래스입니다.
· 즉, Cursor는 기본적으로 DataBase에서 값을 가져와서 마치 실제 Table의 한 행(Row), 한 행(Row) 을 참조하는 것처럼 사용 할 수 있게 해 줍니다.
· 선택된 행(row)의 집합 객체입니다.
· 개발자는 마치 그 행(Row) 을 가지고 행(Row)에 있는 데이터를 가져다가 쓰는 것처럼 사용하면 되는 편의성을 제공받게 됩니다.
커서의 활용
메소드 |
설명 |
moveToFirst() |
가장 처음에 위치한 레코드로 커서를 이동 |
moveToNext() |
커서를 다음 행으로 옮김 |
moveToLast() |
가장 마지막에 위치한 레코드로 커서를 이동 |
moveToPrevious() |
이전 레코드로 커서를 이동 |
moveToPosition(position) |
특정 레코드로 커서를 이동 |
getPosition() |
커서가 현재 가리키고 있는 위치를 반환 |
getCount() |
전체 결과 건수가 몇 개인지 확인 |
getColumnCount() |
컬럼들의 전체 개수를 반환 |
getColumnIndex() |
특정 컬럼 번호 조회 |
getColumnName(int columnIndex) |
특정 인덱스 값에 해당하는 컬럼 이름을 반환 |
getColumnNames() |
결과에 포함된 전체 컬럼 이름 |
isFirst() |
커서가 첫번째 레코드에 위치하는지를 반환 |
isLast() |
커서가 마지막 레코드에 위치하는지를 반환 |
isBeforeFirst() |
커서가 첫번째 레코드의 앞에 위치하는지를 반환 |
isAfterLast() |
커서가 마지막 레코드의 뒤에 위치하는지를 반환 |
requery() |
쿼리를 재실행 |
close() |
커서가 확보한 자원을 모두 해제 |
Cursor에서 데이터 가져오기
커서에서 데이터를 받아올 때에는, get<데이터타입>(필드 인덱스) 메소드를 사용합니다.
메소드 |
설명 |
get<데이터타입>(필드 인덱스) |
메소드 형식 |
getString(int index) getInt(int index) getLong(int index) getBoolean(int index) ... |
DB 테이블의 컬럼값 반환 |
'Development > Android' 카테고리의 다른 글
savedInstanceState (0) | 2019.03.15 |
---|---|
Error-java.lang.IllegalArgumentException: Unable to locate adb, 해결방법 (0) | 2019.03.14 |
startActivity() vs startActivityForResult() 도식도를 통한 차이 확인 - 응답 처리가 필요치 않은 경우 (단방향 액티비티), 응답 처리가 필요한 경우 (양방향 액티비티) (0) | 2019.03.14 |
Activity 실행 과정 (0) | 2019.03.13 |
새 액티비티 생성하기 (0) | 2019.03.13 |