[SQLite] 페이징처리 하기
SQLITE를 사용시 페이징 처리 방법에 대해 알아 보자.
먼저 SQLiteDatabase 클래스를 사용하여 데이터베이스 초기화를 진행합니다.
String databasePath = Environment.getDataDirectory() +“/data/패키지명/databases/mystory.db”; // 데이터베이스 파일명을 설정합니다.
//데이터 베이스 초기화 SQLiteDatabase database = this.openOrCreateDatabase(databasePath, Context.MODE_PRIVATE, null);Z selectSearchWordingDayStory(database, “하이”, 1, 10);
LIMIT / OFFSET을 사용하여 페이징 처리가 가능합니다.
SQLite는 오라클에서 지원하는 ROWNUM() 기능이 없어요.
그 대신 LIMIT함수를 이용합니다.
LIMIT 10 : 10개의 ROW를 출력하라는 의미 입니다.
LIMIT 3 OFFSET 2 : 2개의 ROW를 건너 뛰고 3개를 출력하라는 의미입니다.
public static Cursor selectSearchWordingDayStory(SQLiteDatabase database, String searchParam , int CurrentPage , int PageSize ){
String queryParam;
queryParam = "SELECT _event_type "
+ ", _contents"
+ ", event_id"
+ ", _event_date"
+ " FROM TB_STORY ";
if(!StringUtil.isEmpty(searchParam)) {
queryParam = queryParam + " WHERE _contents LIKE " + "'%" + searchParam + "%'";
}
queryParam = queryParam + " ORDER BY _event_date DESC ";
if(StringUtil.isEmpty(searchParam)) {
queryParam = queryParam +" LIMIT " + PageSize + " OFFSET " + (CurrentPage - 1) * PageSize;
}
//Log.d(DataBaseUtil.class.getSimpleName(), "=========== queryParam: " + queryParam);
Cursor cursor = database.rawQuery(queryParam ,null);
return cursor;
}
참고사항 :
SQLite는 파일기반의 DBMS입니다. 그리고 오픈소스입니다.
SQLite 공식사이트
https://www.sqlite.org/index.html
SQLite 나무위키 정보
https://namu.wiki/w/SQLite
좀더 자세한 정보가 필요하시면 아래 사이트를 참고하세요. 해외사이트인데 정리가 잘 되어 있네요
https://www.techonthenet.com/sqlite/index.php
https://www.tutorialspoint.com/sqlite/
기초 지식이 필요하다면 아래 사이트를 참고하세요
http://gywn.net/2013/08/let-me-intorduce-sqlite/
SQLite Browser : DB파일을 GUI로 보는 툴입니다.
https://sqlitebrowser.org/
오픈소스로 진행 되는건가? 프로그램 코드가 GitHub에 있습니다.