본문 바로가기

Programming/android

sd카드에 database 저장하기.


sqlopenhelper를 사용해 데이터베이스를 생성하게될 경우에, 보통 "data/ data / 패키지명 / db / 데이터베이스파일"로 생성이 되게 된다.

이 경로는 내가 원하는 곳으로 바꿀 수는 없을까?

이는 다음과 같이 하면 된다.

생성자에서 filePath만 새로 잡아주면 됩니다.

예 > 

public static final String FILE_PATH = Environment.getExternalStorageDirectory().getAbsolutePath() + File.separator + SQLITE_FILE;

public DBOpenHelper(Context context){

super(context, FILE_PATH, null, DB_VERSION);

}


 자동 생성되는, onCreate, onUpdate에 있는 내용은 동일하게 쓰셔도 무방합니다.

저의 풀소스,

public class DBOpenHelper extends SQLiteOpenHelper {

private static final int DB_VERSION = 1;

public DBOpenHelper(Context context){

super(context, Constants.FILE_PATH, null, DB_VERSION);

}

@Override

public void onCreate(SQLiteDatabase db) {

db.execSQL(getCreateCategoryTableString());

}

@Override

public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

db.execSQL("DROP TABLE IF EXISTS " + DBConstants.TABLE_NAME);

onCreate(db);

}

private String getCreateCategoryTableString(){

   return "CREATE TABLE "+ DBConstants.TABLE_NAME +" ( "

   + _ID   + " INTEGER PRIMARY KEY AUTOINCREMENT, "  

   + DBConstants.ID + " INTEGER NOT NULL, "

   + DBConstants.TITLE_KOR       + " TEXT NOT NULL, "

   + DBConstants.ENG    + " TEXT NOT NULL, "

   + DBConstants.CODE_NUM    + " TEXT NOT NULL, "

   + DBConstants.SDATE    + " TEXT NOT NULL ) ; ";

}

}

 

참조 : 2011/02/08 - [Programming/android] - android에서 외부(sdcard) db를 열려면?