2010-01-21 3 views
0

Android에서 데이터베이스를 업그레이드하면 모든 데이터가 손실됩니다.Android 데이터베이스 테이블에 플랫 파일로드

많은 데이터베이스 업그레이드가 현재 진행 중입니다.

데이터베이스를 업그레이드 할 때마다 내 데이터를 모두 잃고 싶지 않으므로 수동으로 다시 입력해야합니다.

데이터를 플랫 파일로 저장하고 데이터베이스 업그레이드가 발생할 때마다 해당 플랫 파일을 해당 테이블에로드하고 싶습니다.

Android 플랫폼에서이 문제를 어떻게 해결할 수 있습니까? 데이터 파일을 어디에 저장해야합니까? (res/raw)

이 파일을로드하려면 어떤 sql을 실행해야합니까?

+0

다음은 기존 sqlite db를 다시 가져 오는 것에 대한 링크입니다. 도움이 될 수 있습니다. http://www.reigndesign.com/blog/using-your-own-sqlite-database-in-android-applications/ – JeremyFromEarth

답변

1

XML이 아닌 한 플랫 파일을 res/raw에 넣었습니다.이 경우 res/xml에 넣을 수 있습니다.

데이터베이스에 데이터를 삽입하는 방법은 플랫 파일의 값을 루프하여 각 행에 삽입하는 것입니다.

Android에서 사용할 수있는 일괄 삽입 방법이 간략하게 표시되지 않습니다.

파일 형식에 따라 FileReader 또는 XmlPullParser을 사용하여 플랫 파일을 읽는 것만으로.

+0

파일이 .csv 형식 인 경우 가져 오기 명령문 등을 사용하여 전체 파일을 테이블로 가져올 수 없습니까? ... 즉, 각 행을 독립적으로 삽입하는 대신. – MoMo

2

mbaird는 플랫 파일을 저장하는 데 좋은 대답입니다. 하지만 귀하의 경우 (정확하게 이해한다면) SQLiteOpenHelper을 구현하면 문제를 해결할 수 있습니다. 그냥 데이터베이스 버전을 저장하고 생성자에 전달하십시오. 그런 다음 onUpgrade()의 모든 변경 사항을 처리합니다. 모든 데이터가 손실되지는 않습니다.

+0

SQLiteOpenHelper에 대해 알지 못했습니다. 그거 알아두면 좋을거야. –

관련 문제