나는 안드로이드 애플리케이션을 개발 중이며 일부 비트 맵을 저장하기 위해 Sqlite 데이터베이스를 사용하고 있습니다. 사용자가 응용 프로그램을 설치할 때 일부 이미지가 자동으로 삽입되기를 원합니다.SQLite - 삽입 문을 통해 BLOB를 삽입 할 수 있습니까?
나는이 같은 SQLiteOpenHelper 클래스를 사용하고 있습니다 :
public class DatabaseHelper extends SQLiteOpenHelper {
...
DatabaseHelper(Context context, String nameOfDB, int version, String[] scriptSQLCreate,
String scriptSQLDelete) {
super(context, nameOfDB, null, version);
this.scriptSQLCreate = scriptSQLCreate;
this.scriptSQLDelete = scriptSQLDelete;
}
@Override
public void onCreate(SQLiteDatabase db) {
int numScripts = scriptSQLCreate.length;
for(int i = 0; i<numScripts; i++){
Log.i(TAG,"Creating database, executing script " + i);
db.execSQL(scriptSQLCreate[i]);
}
}
}
...
내가 지금처럼 될 것이라고 위에 표시된 scriptSQLCreate 매개 변수에 상수를 전달하려는 :
private static final String[] SCRIPT_DATABASE_CREATE = {
"create table memes( id integer primary key autoincrement," +
+ " img blob not null," +
+ " name text not null unique)" ,
"insert into memes(img,name) values(BITMAP1,'1.jpg')",
"insert into memes(img,name) values(BITMAP2,'2.jpg')",
"insert into memes(img,name) values(BITMAP3,'3.jpg')"}
}
도움이 될 것입니다.
들으, 툴리오 Zahn은 당신이 매우 긴 진수를 사용할 수 있습니다에 당신이 정말로, 정말로 원하는 경우
Humm, 귀하의 접근 방식은 확실히 흥미 롭습니다. 더 적은 수의 비트 맵이 아닌 수백 개의 비트 맵으로 데이터베이스를 미리 채울 필요가 있다면 더욱 그렇습니다. 이 경우에는 수백 가지의 insert 문을 사용하는 것은 매우 비실용적입니다. 나는 당신의 접근 방법을 테스트 할 것이지만, 우선 모든 이미지를 어디에 넣어야하는지의 문제에 대한 해결책을 찾아 내야한다. 그 중 많은 파일을 가지고있는 경우 드로어 블 폴더에 파일을 저장하는 것은 매우 비실용적입니다. – tulio84z
프로젝트의 자산 디렉토리가 필요합니다. 파일에 액세스 할 수있는 API가 있습니다. 파일 시스템의 실제 파일 : http://developer.android.com/reference/android/content/res/AssetManager.html –