如何读取存储在 sqlite 数据库中的 blob 类型?
Posted
技术标签:
【中文标题】如何读取存储在 sqlite 数据库中的 blob 类型?【英文标题】:How to read a blob type stored in sqlite database? 【发布时间】:2021-09-18 19:35:35 【问题描述】:我成功地在 SQLite 数据库中存储了一个 blob 类型,但我以后无法正确检索它:
我是这样做的:
byte[] miniatura= cursor.getBlob(cursor.getColumnIndex(mysqliteHelper.thumbnail));
但它失败了:
java.lang.IllegalStateException: Couldn't read row 0, col -1 from CursorWindow. Make sure the Cursor is initialized correctly before accessing data from it.
尽管有消息,但我认为光标不是问题,好像我将提到的指令更改为:
String cadena= cursor.getString(cursor.getColumnIndex(MySqliteHelper.fieldofTypeText));
cadena 具有应有的价值。
那么,我该怎么做才能正确获得 Blob 值?
【问题讨论】:
【参考方案1】:我已将图像存储在 SQLite 数据库中并显示在图像视图中
为此,我已将此代码添加到数据库类中
public byte [] get(String query)
try
SQLiteDatabase db = this.getReadableDatabase();
Cursor cursor = db.rawQuery(query,null);
if (cursor.moveToFirst())
return cursor.getBlob(0);
return null;
catch (Exception e)
e.printStackTrace();
return null;
为了在图像视图中显示图像,我使用了这个。
db_class = new DatabaseClass(MainActivity.this);
byte [] img = db_class.get("SELECT IMG FROM data WHERE id = 1");
if (img != null)
Bitmap bitmap = convertbytearyrtobitmap(img);
imageView.setImageBitmap(bitmap);
我为我的作业做了这个,你可以在 github 上看到我的代码
https://github.com/dharmik953/krishi_network_internship_project/blob/master/app/src/main/java/com/dharmik953/krishinetwork/MainActivity.java
【讨论】:
以上是关于如何读取存储在 sqlite 数据库中的 blob 类型?的主要内容,如果未能解决你的问题,请参考以下文章
如何将图像存储为 Sqlite 中的 blob 以及如何检索它?
SQLite - 如何从 XML 文件插入 JPG 图像(使用 Delphi 2009)