2015년 10월 15일 목요일

안드로이드 SQLITE에 대해서 주의해야 할 사항-ONCREATE, ONUPGRADE 호출 시점





안드로이드 SQLite에 대해서 주의해야 할 사항

SQLiteOpenHelp 클래스의 두 abastract 메소드인 onCreate()와 onUpgrade()가 호출되는 시점에 대해서 주의해야 할, 그리고 알아야 할 사항이 있다.

여기서 MyDB는 SQLiteOpenHelper 클래스를 상속받은 클래스라고 할 경우
(class MyDB extends SQLiteOpenHelper)

① MyDB dbHelp = new MyDB(this);
  ⇒ 이 단계에서는 SQLiteOpenHelper를 상속 받은 MyDB의 생성자만 호출이 
      되고 MyDB의 onCreate()는 아직 호출이 안된다.

      SQLiteDatabase db = dbHelp.getReadableDatabase() 혹은   
      dbHelp.getWritableDatabase()가 호출 될 때 비로소
      MyDB의 onCreate()가 호출되서 테이블이 생성이 된다. 

      getReadableDatabase()하는 시점에서 테이블이 없으면
      테이블이 새롭게 생성이 되고 기존 존재하면 그것을 Radable이나 Writable 중 
      하나로 open한다.

② MyDB의 onUpgrade()가 호출되는 시점
  ⇒ super(context,"Test.db", null, 2); 의 맨 마지막 인자인 DB의 
      version 값이 상향 조정될 때 호출된다.

댓글 없음:

댓글 쓰기