데이터베이스 리스트 조회
ContextWrapper.databaseList();
ContextWrapper == ConText
데이터베이스 삭제
ContextWrapper.deleteDatabase("삭제할 데이터베이스명");
예)
if (Arrays.binarySearch(databaseList(), DATABASE_NAME) >= 0) {
deleteDatabase(DATABASE_NAME);
}
어플리케이션내에 데이터베이스 열거나 생성
ContextWrapper.openOrCreateDatabase("데이터베이스명.db", 데이터베이스모드<읽기,쓰기전용 또는 기존에 파일있으면 열어라등.. 모드지정>, 쿼리가호출되는 커서를 선택<커서객체를 만들어 사용할지에입력 그렇지 않으면 null>);
예) SQLiteDatabase mydb=openOrCreateDatabase(DATABASE_NAME, SQLiteDatabase.CREATE_IF_NECESSARY, null); 조회해보고 없으면 생성해주는 상수값
데이터베이스 위치 설정
SQLiteDatabase.setLocale(Locale.getDefault());
데이터베이스 접근권한 설정
SQLiteDatabase.setLockingEnabled(true);
데이터베이스 버전 설정
SQLiteDatabase.setVersion(1);
데이터베이스 위치 추출
SQLiteDatabase.getPath());
데이터베이스 버전
SQLiteDatabase.getVersion();
현재 데이터베이스 페이지사이즈
SQLiteDatabase.getPageSize();
데이터베이스의 최대크기
SQLiteDatabase.getMaximumSize();
데이터베이스가 열려 있는지
SQLiteDatabase.isOpen();
데이터베이스가 읽기 전용 인지
SQLiteDatabase.isReadOnly();
현재 쓰레드에 의해 데이터베이스가 잠겨 있는지
SQLiteDatabase.isDbLockedByCurrentThread();
쿼리문 실행메서드
SQLiteDatabase.execSQL("쿼리문");
예)
SQLiteDatabase.execSQL("CREATE TABLE tbl_authors (id INTEGER PRIMARY KEY AUTOINCREMENT , firstname TEXT, lastname TEXT);");
테이블에 데이터를 삽입할 경우
ContentValues values = new ContentValues();
ContentValues.put("필드명", 데이터); (어디에 필드명)과 (값 데이터)을 한묶음으로
//long id = SQLiteDatabase.insert(테이블명, null, ContentValues);
long id = SQLiteDatabase.insertOrThrow(테이블명, null, ContentValues);
* 두번째 인자에 null을 사용하는 이유 : 완전히 비어있는 행을 허용하지 않기 때문에 세번재 인자값이 null인 경우를 방지
예)
ContentValues values = new ContentValues();
values.put("title", newBook.mTitle); => values.put("title", "해리");
values.put("dateadded", newBook.mDateAdded.toLocaleString()); =>values.put("dateadded", "2011-06-23")
values.put("authorid", newBook.mAuthor.mAuthorId);
//long id = SQLiteDatabase.insert(TABLE_BOOK, null, values);
long id = SQLiteDatabase.insertOrThrow(TABLE_BOOK, null, values); 필요에따라
SQLiteDatabase.insertOrThrow(TABLE_BOOK, null, values);
테이블에 데이터를 수정할 경우
ContentValues values = new ContentValues();
ContentValues.put("필드명", 데이터);
SQLiteDatabase.update(테이블명, ContentValues, "조건필드=?", ?를 치환할 문자배열);
예)
ContentValues values = new ContentValues();
ContentValues.put("필드명", 데이터);
SQLiteDatabase.update(TABLE_BOOK, values, "id=?", new String[] { bookId.toString() });
테이블에 데이터를 삭제할 경우
SQLiteDatabase.delete(테이블명, "조건필드=?", ?를 치환할 문자배열);
예)
SQLiteDatabase.delete(TABLE_BOOK, "id=?", new String[] { bookId.toString() });
테이블에 데이터를 조회할 경우
Cursor c = mDatabase.query(테이블명, null, null, null, null, null, null); select
Cursor.getCount(); 조회된 recode의 총갯수
Cursor.getColumnCount(); 조회된 필드 갯수
Cursor.getColumnName(); 이름
Cursor.getPosition(); 현재 커서 포인터위치
Cursor.getString(int columnIndex); 필드값
커서포인트 위치를 바꿔주는 메서드 처음 (Cursor 위치는 항상 0번 이기에 First를 해줘야함)
Cursor.moveToFirst(); 커서포인터위치를 첫번째 레코드 위치로
Cursor.moveToNext(); 커서포인터위치를 다음 레코드 위치로
Cursor.moveToPrevious(); 커서포인터위치를 이전 레코드 위치로
Cursor.moveToLast(); 커서포인터위치를 마지막 레코드위치로
Cursor.moveToPosition(int position); 커서포인터위치를 지정한 레코드 위치로
Cursor.isAfterLast(); 현재 커서포인터위치에서 다음레코드가 있는지 확인 //즉, 마지막레코드인지 확인 //마지막 레코드이면 true
recode, id값은 무관...
public void LogCursorInfo(Cursor c) {
Log.i(DEBUG_TAG, "*** Cursor Begin *** " + " Results:" + c.getCount() + " Columns: " + c.getColumnCount());
// Print column names
String rowHeaders = "|| ";
for (int i = 0; i < c.getColumnCount(); i++) {
rowHeaders = rowHeaders.concat(c.getColumnName(i) + " || ");
}
Log.i(DEBUG_TAG, "COLUMNS " + rowHeaders);
// Print records
c.moveToFirst();
while (c.isAfterLast() == false) {
String rowResults = "|| ";
for (int i = 0; i < c.getColumnCount(); i++) {
rowResults = rowResults.concat(c.getString(i) + " || ");
}
Log.i(DEBUG_TAG, "Row " + c.getPosition() + ": " + rowResults);
c.moveToNext();
}
Log.i(DEBUG_TAG, "*** Cursor End ***");
}
예)
Cursor c = mDatabase.query(TABLE_BOOK, null, null, null, null, null, null);
public void LogCursorInfo(Cursor c) {
Log.i(DEBUG_TAG, "*** Cursor Begin *** " + " Results:" + c.getCount() + " Columns: " + c.getColumnCount());
// Print column names
String rowHeaders = "|| ";
for (int i = 0; i < c.getColumnCount(); i++) {
rowHeaders = rowHeaders.concat(c.getColumnName(i) + " || ");
}
Log.i(DEBUG_TAG, "COLUMNS " + rowHeaders);
// Print records
c.moveToFirst();
while (c.isAfterLast() == false) {
String rowResults = "|| ";
for (int i = 0; i < c.getColumnCount(); i++) {
rowResults = rowResults.concat(c.getString(i) + " || ");
}
Log.i(DEBUG_TAG, "Row " + c.getPosition() + ": " + rowResults);
c.moveToNext();
}
Log.i(DEBUG_TAG, "*** Cursor End ***");
}
Date today = new Date(java.lang.System.currentTimeMillis());
'프로그래밍 > 안드로이드' 카테고리의 다른 글
안드로이드 - 새로운 다른 앱이 설치될때 app widget 멈출 경우 해결법 (0) | 2014.01.11 |
---|---|
[Android/안드로이드] 어플리케이션 외장메모리 (sd card )에 설치하는 방법. (0) | 2014.01.08 |
안드로이드 - [번역] 안드로이드 외장 메모리에 설치 가능한 어플리케이션 만들기 (0) | 2014.01.08 |
안드로이드 - USB MOUNT 브로드캐스트 받는법 (0) | 2014.01.05 |
안드로이드 - 브로드캐스트 리시버 관련 인텐트의 액션들 (0) | 2014.01.05 |
안드로이드 - URI parser에서 분석되는 방법 (0) | 2014.01.05 |
안드로이드 - SD카드 마운트-탈착에 관한 인텐트 (0) | 2014.01.05 |
안드로이드 - arraylist를 인텐트로 넘기는 방법! (0) | 2014.01.02 |