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() 무조건 실행됨) 이 두 메서드를 잘오버라이드 시켜 버전관리를 해주면 된다.
'2019 summer 부스트코스 에이스(안드로이드 프로그래밍) > 6. 데이터베이스' 카테고리의 다른 글
6-5-1 인터넷 연결상태 확인하기 (0) | 2019.08.25 |
---|---|
6-2-1 데이터베이스와 테이블 만들기 / 6-3-1 데이터 추가하고 조회하기 (0) | 2019.08.24 |