안드로이드 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 값이 상향 조정될 때 호출된다.




+ Recent posts