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를 열려면?