2012-05-08 2 views
0

기능 :(의 SQLiteDatabase 및 SQLiteOpenHelper) 중복 나는 두 가지 방법의 SQLiteDatabase를 열 수 있습니다

SQLiteDatabase.openDatabase() 
SQLiteOpenHelper.getWritableDatabase() 

SQLiteDatabase.openDatabase()

Q1- 왜 복제를 사용하는 경우 더 많은 제어를 제외하고 두 가지 방법 사이에 차이가없는 것으로 보인다 ?

Q2- 어떻게 SQLiteOpenHelper를 확장 당신이 당신의 메인 코드에서 SQLite는 DB 코드를 많이 제거 할 수 있습니다 자신의 클래스를 생성 소프트웨어 설계의 관점

+0

http://programmers.stackexchange.com/에서 더 나은 행운을 누릴 수 있습니다. 작업중인 프로그램에 대한 구체적인 질문이 있습니다. – FoamyGuy

답변

1

에서 그 혜택을 누릴 수 있습니다. onCreate(...)onUpdate(...) 메서드를 재정 의하여 앱을 처음 실행할 때 자동으로 데이터베이스를 만들고 앱을 업그레이드 할 때 데이터베이스를 업데이트 할 수 있습니다.

연장 된 SQLiteOpenHelper에 '보일러 플레이트'작업 (쿼리, 삽입, 삭제 등)을 모두 수행 할 수 있으므로 유용합니다. 실제로 주 코드는 데이터베이스에 대한 참조가 필요 없으며 확장 된 SQLiteOpenHelper 클래스의 메소드를 간단하게 호출 할 수 있습니다.

0

SQLiteDatabase은 위에서 언급했듯이 많은 상용구 코드를 처리하고 일반적으로 선호해야하는 반면 더 낮은 수준의 액세스와 제어를 제공합니다. SQLiteDatabase을 사용해야하는 한 가지 상황은 외부 저장소에 데이터베이스 (종종 미리 채워짐)를 열려고 할 때입니다. SQLiteOpenHelper으로 DB 파일 위치를 지정할 수 없습니다. 기본값은 앱의 개인 디렉토리에 만듭니다 (org.myapp/databases 아래).).