如何在db中插入图像?

时间:2013-01-08 04:56:06

标签: android insert android-sqlite

我有一个使用sqlite在android中将图像插入db的查询。

String sqlQuerry = "INSERT table_name SET column_name = ?  WHERE pk_id =last_insert_rowid();";

SQLiteStatement insertStmt = sqliteDataBase .compileStatement(sqlQuerry);

insertStmt.clearBindings();

insertStmt.bindBlob(1, byteArray);

insertStmt.execute();

但是这显示 sqlite返回:错误代码= 1,msg =接近“SET”:语法错误

我该如何解决这个问题?

先谢谢

3 个答案:

答案 0 :(得分:1)

- 将图像存储在数据库中的想法根本不经济。

- 最常练习的做法是,将图片存储在 sdcard的某个文件夹中然后使用存储在数据库中的 path 访问该图片。

- 从DB访问path后,将其转换为图片

<强>例如

ImageView imageQuestion;  // Declared at class scope

imageQuestion.setImageBitmap(BitmapFactory.decodeFile(/sdcard/myfolder/viv.png));   

答案 1 :(得分:0)

我认为您打算使用UPDATE代替INSERT

UPDATE table_name SET column_name = ? WHERE pk_id = last_insert_rowid();

答案 2 :(得分:0)

我建议你不要在db中插入blobs这会使你的数据库非常慢

  

替代解决方案是您应该将图像保存在应用程序的文档目录中,并在数据库中仅保存图像的路径。