SQLiteDatabase(android.database.sqlite.SQLiteDatabase)
- 데이터베이스를 다루는 작업(추가, 삭제, 수정, 쿼리)
SQLiteOpenHelper(android.database.sqlite.SQLiteOpenHelper)
- 데이터베이스의 생성, 열기, 업그레이드
# query
public Cursor query (String table, String[] columns, String selection, String[] selectionArgs,
String groupBy, String having, String orderBy, String limit)
* table 질의를 수행할 테이블 이름입니다.
* columns 자료를 받아올 필드들입니다. null을 입력하면 모든 필드를 반환합니다.
* selection SQL의 "where" 구문에 해당되는 조건을 입력합니다. 조건이 많을 경우, ?로 대체합니다.
* selectionArgs selection을 ?로 지정하였을 경우, 그 조건들을 입력합니다.
* groupBy SQL의 "group by"구문에 해당합니다.
* having groupBy를 지정했을 경우, 그 조건을 넣어줍니다.
* orderBy 결과값 정렬 방식을 지정합니다. null을 입력하면 기본 정렬을 수행합니다.
* limit 결과값의 개수를 제한합니다.
// 모든 레코드를 반환하는 쿼리를 실행합니다.
Cursor all = myDB.query("data", null, null, null, null, null, null, null);
// 이름이 google인 레코드를 반환하는 쿼리를 실행합니다.
Cursor sel = myDB.query("data", "name = google", null, null, null, null, null, null);
# 데이터베이스 값을 가지는 객체, Cursors와 ContentValues
Cursor 인터페이스의 주요 메소드는 다음과 같습니다.
* moveToFirst 커서가 쿼리(질의) 결과 레코드들 중에서 가장 처음에 위치한 레코드를 가리키도록 합니다.
* moveToNext 다음 레코드로 커서를 이동합니다.
* moveToPrevious 이전 레코드로 커서를 이동합니다.
* getCount 질의 결과값(레코드)의 갯수를 반환합니다.
* getColumnIndexOrThrow 특정 필드의 인덱스값을 반환하며, 필드가 존재하지 않을경우 예외를 발생시킵니다.
* getColumnName 특정 인덱스값에 해당하는 필드 이름을 반환합니다.
* getColumnNames 필드 이름들을 String 배열 형태로 반환합니다.
* moveToPosition 커서를 특정 레코드로 이동시킵니다.
* getPosition 커서가 현재 가리키고 있는 위치를 반환합니다.
// 레코드로부터 이름을 받아옵니다.
String name = result.getString(1);
// 레코드로부터 전화번호를 받아옵니다.
long phone = result.getLong(2);
# 코드 -> 데이터베이스에 자료 입력하기 : ContentValues (android.content.ContentValues)
위의 Cursor와는 반대로, 자료를 데이터베이스에 입력하기 위해서 ContentValues 객체를 데이터베이스의 레코드와 동일하게 사용합니다. ContentValues 객체에 데이터베이스 테이블에 맞게 자료를 입력한 후, SQLiteDatabase 클래스의 insert()메소드를 사용하여 데이터베이스에 새로운 레코드를 추가합니다.
// 필요한 데이터를 입력합니다.
ContentValues newValues = new ContentValues();
newValues.put("name", "구글");
newValues.put("phone", "1234567");
// 레코드를 추가합니다.
myDB.insert("data", null, newValues);
'mobile > android' 카테고리의 다른 글
adb command (0) | 2019.07.18 |
---|---|
View Class Diagram 클래스 다이어그램 (0) | 2019.07.18 |
Android - adb devices (0) | 2019.07.16 |
Android - style Theme (0) | 2019.07.16 |
Android - Resource R.java (0) | 2019.07.16 |
댓글