Android SQLite

Android SQLite는 안드로이드 애플리케이션 내에서 로컬 데이터베이스를 관리하기 위해 사용되는 경량의 관계형 데이터베이스 엔진입니다. SQLite는 SQL(Structured Query Language)을 사용하여 데이터베이스와 상호작용하며, 작은 메모리 풋프린트와 간편한 사용법으로 인해 모바일 환경에 적합합니다.

SQLite의 특징

  • 경량성: 작은 메모리 사용량과 낮은 성능 오버헤드를 가지고 있어 모바일 환경에 적합합니다.
  • 내장형 데이터베이스: 추가 설치 없이 안드로이드 프레임워크에 내장되어 있습니다.
  • SQL 지원: 표준 SQL 쿼리를 사용하여 데이터베이스와 상호작용합니다.
  • 트랜잭션 지원: ACID(Atomicity, Consistency, Isolation, Durability) 속성을 지원하여 데이터의 무결성을 보장합니다.

SQLite 사용 단계

  1. 데이터베이스 헬퍼 클래스 생성
  2. 데이터베이스 열기/닫기
  3. CRUD 작업 수행 (Create, Read, Update, Delete)

단계별 구현 예시

1. 데이터베이스 헬퍼 클래스 생성

SQLiteOpenHelper를 상속받아 데이터베이스 생성 및 업그레이드를 관리합니다.

public class MyDatabaseHelper extends SQLiteOpenHelper {

    private static final String DATABASE_NAME = "mydatabase.db";
    private static final int DATABASE_VERSION = 1;

    public MyDatabaseHelper(Context context) {
        super(context, DATABASE_NAME, null, DATABASE_VERSION);
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        String CREATE_TABLE = "CREATE TABLE mytable (" +
                              "id INTEGER PRIMARY KEY AUTOINCREMENT, " +
                              "name TEXT, " +
                              "age INTEGER)";
        db.execSQL(CREATE_TABLE);
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        db.execSQL("DROP TABLE IF EXISTS mytable");
        onCreate(db);
    }
}

2. 데이터베이스 열기/닫기

데이터베이스를 열고 닫는 메서드를 작성합니다.

MyDatabaseHelper dbHelper = new MyDatabaseHelper(context);
SQLiteDatabase db = dbHelper.getWritableDatabase();

// 작업 후 데이터베이스 닫기
db.close();

3. CRUD 작업 수행

Create
ContentValues values = new ContentValues();
values.put("name", "John");
values.put("age", 30);

long newRowId = db.insert("mytable", null, values);
Read
String[] projection = {
    "id",
    "name",
    "age"
};

Cursor cursor = db.query(
    "mytable",   // 테이블
    projection,  // 열
    null,        // WHERE 절
    null,        // WHERE 절의 값
    null,        // 그룹
    null,        // 그룹 필터
    null         // 정렬
);

while (cursor.moveToNext()) {
    long itemId = cursor.getLong(cursor.getColumnIndexOrThrow("id"));
    String itemName = cursor.getString(cursor.getColumnIndexOrThrow("name"));
    int itemAge = cursor.getInt(cursor.getColumnIndexOrThrow("age"));
}
cursor.close();
Update
ContentValues values = new ContentValues();
values.put("name", "Jane");
values.put("age", 25);

String selection = "id = ?";
String[] selectionArgs = { "1" };

int count = db.update(
    "mytable",
    values,
    selection,
    selectionArgs);
Delete
String selection = "id = ?";
String[] selectionArgs = { "1" };

int deletedRows = db.delete("mytable", selection, selectionArgs);

종합

Android SQLite는 안드로이드 앱에서 로컬 데이터베이스를 관리하는 데 매우 유용한 도구입니다. SQLiteOpenHelper를 통해 데이터베이스를 생성 및 업그레이드하고, SQLiteDatabase를 사용하여 CRUD 작업을 수행할 수 있습니다. 이로 인해 앱 내에서 데이터를 효율적으로 저장하고 관리할 수 있습니다.

Leave a Reply

Your email address will not be published. Required fields are marked *