Tôi đang phát triển một ứng dụng Android và tôi đang sử dụng cơ sở dữ liệu Sqlite để lưu trữ một số bitmap. Tôi muốn một số hình ảnh được chèn tự động khi người dùng cài đặt ứng dụng.SQLite - Có thể chèn BLOB qua câu lệnh chèn không?
Tôi đang sử dụng lớp SQLiteOpenHelper như thế này:
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]);
}
}
}
...
Tôi muốn vượt qua một hằng số với tham số scriptSQLCreate hiển thị ở trên đó sẽ là như vậy:
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')"}
}
Bất kỳ trợ giúp nào sẽ được đánh giá cao,
Thx, Tulio Zahn
Humm, cách tiếp cận của bạn chắc chắn là thú vị. Thậm chí nhiều hơn nếu người ta cần phải chuẩn bị sẵn một cơ sở dữ liệu với hàng trăm bitmap thay vì chỉ một vài. Trong trường hợp đó, sẽ rất không thực tế khi có hàng trăm câu lệnh chèn. Tôi sẽ kiểm tra cách tiếp cận của bạn nhưng trước tiên tôi phải đưa ra một giải pháp cho vấn đề về nơi để đặt tất cả những hình ảnh đó. Trong trường hợp có rất nhiều người trong số họ, chỉ cần đặt chúng trong thư mục drawable có vẻ rất không thực tế. – tulio84z
Điều bạn muốn là thư mục nội dung trong dự án của mình --- có API cho phép bạn truy cập các tệp ở đó như thể chúng các tệp thực sự trên hệ thống tệp: http://developer.android.com/reference/android/content/res/AssetManager.html –