我有一个使用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”:语法错误
我该如何解决这个问题?
先谢谢
答案 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
,这会使你的数据库非常慢
替代解决方案是您应该将图像保存在应用程序的文档目录中,并在数据库中仅保存图像的路径。