728x90
SQLite DB의 테이블 데이터를 가져오는 쿼리 작성시 약간 잘못 생각하면 엉뚱한 결과가 나오더라.
public ArrayList<String> getAllCateData(String category){
ArrayList<String> sqliteDBData = new ArrayList<>();
// Select All Query
String selectQuery = "SELECT * FROM " + HISTORY_TABLE + " WHERE category= '" + category + "' ORDER BY datetime ASC";
SQLiteDatabase db = mHelper.getWritableDatabase();
Cursor cursor = db.rawQuery(selectQuery, null);
System.out.println("cursor.getCount : "+cursor.getCount());
System.out.println("selectQuery : "+ selectQuery);
if(cursor != null)
if(cursor.moveToFirst()){ // 반드시 이런 순서로 해야 문제가 없더라.
do {
// ArrayList에 추가
int column_index = cursor.getColumnIndex(Column_history);
sqliteDBData.add(cursor.getString(column_index));
} while (cursor.moveToNext());
}
cursor.close();
return sqliteDBData;
}
|
전체 소스는 GitHub 에 올려진 코드를 참고하면 된다.
728x90
'안드로이드 > Android SQLite' 카테고리의 다른 글
Simple Note with Room Database using MVVM and Search Widget in Java (0) | 2022.09.12 |
---|---|
[Java] SharedPreferences Singleton (0) | 2020.05.15 |
Room Persistence Library with Java (0) | 2020.04.05 |
안드로이드 메모 어플 소스 RecyclerView + SQLite 활용 (0) | 2019.09.26 |
android 메모 어플 소스 ListView + SQLite 활용 (0) | 2019.09.24 |