본문 바로가기
공부하는 하스씨/안드로이드

안드로이드에서 SQLite DB 사용하기

by 박하스. 2010. 10. 25.
728x90
반응형

SQLiteOpenHelper 를 상속받는 wrapper 클래스를 하나 정의한다.

public class MyDBOpenHelper extends SQLiteOpenHelper
{
private static final String TAG = "MyDBOpenHelper";
private static final String DB_NAME = "my_db";
private static final int DB_VERSION = 2;

public MyDBOpenHelper(Context ctx)
{
super(ctx, DB_NAME, null, DB_VERSION);
}

@override
public void onCreate(SQLiteDatabase db)
{
String sql_create_table = "CREATE TABLE my_table (id integer primary key autoincrement, field1 text not null, field2 text not null);";

db.execSQL(sql_create_table);
}

@override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)
{
String sql_drop_table = "DROP TABLE IF EXISTS my_table";

db.execSQL(sql_drop_table);

onCreate(db);
}
}


이후 코드에서는 ,
MyDBOpenHelper dbHelper = new MyDBOpenHelper( context );
SQLiteDatabase db = dbHelper.getWritableDatabase();  // 읽기, 쓰기
// SQLiteDatabase db = dbHelper.getReadableDatabase();  // 읽기

으로 열고, db.query 등을 메소드로 DB에 요청을 수행하고.

db.close();
dbhelper.close()

메소드를 찰례로 호출함으로써, DB를 닫아주면 된다.


개인적으로는 Wrapper 클래스에 싱글턴 패턴을 적용하고,
필요한 query동작을 메소드로 구현 함으로써, DB 사용을 단순화 하는것은 선호한다.
코드에서 매번 SQL 쿼리문을 작성하는 것은 귀찮기도 하고, 나중에 쿼리가 바뀔경우에도 번거롭다.




728x90
반응형