MainActivity

 

activity_main.xml

 

데이터베이스를 이용한 어플리케이션에서 만약 어플리케이션이 배포가 완료되고 다시 테이블의 칼럼이나 구성을 바꿔야할 상황일 때 이 헬퍼를 이용하면 편리하다. 우선 아래처럼

 

class DatabaseHelper extends SQLiteOpenHelper {

public DatabaseHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) {
super(context, name, factory, version);
}

@Override
public void onCreate(SQLiteDatabase sqLiteDatabase) {

println("onCreate() 호출됨");

String tableName = "customer";

String sql = "create table if not exists " + tableName + "(_id integer PRIMARY KEY autoincrement , name text, age integer, mobile text) ";
sqLiteDatabase.execSQL(sql);

println("테이블 생성됨.");

}

@Override
public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) {

println("onUpgrade() 호출됨" + i + ", " + i1) ;

if(i1 > 1)
{
String tableName = "customer" ;
sqLiteDatabase.execSQL("drop table if exists " + tableName);
}
}
}

SQLiteOpenHelper를 상속받은 클래스를 하나 정의 해주고 public void onCreate,  onUpgrade를 오버라이드 해주면 준비는 끝난다. 이 후 데이터베이스를 열 때 

 

DatabaseHelper helper = new DatabaseHelper(this, databaseName, null, 3 );
database = helper.getWritableDatabase();

 

이런 식으로 getWritableDatabase를 이용하여 열어 주면 된다. 이 때 데이터 베이스가 처음 생성되는 경우라면 onCreate가 실행되고 또는 데이터베이스가 버전이 업그레이드 되어 열리면 onUpgrade가 실행된다.(둘 다 아닐 경우 아무것도 실행안됨 그 이후에 onOpen() 무조건 실행됨) 이 두 메서드를 잘오버라이드 시켜 버전관리를 해주면 된다. 

 

 

 

결과화면

 

+ Recent posts