如何将图像作为BLOB存储在Sqlitt中&如何检索?

如何将图像作为BLOB存储在Sqlitt中&如何检索?

我想把一个图片(从url)存储到sqite数据库中。


为此,我使用:


db = new DataBase(getApplicationContext());

URL url = new URL("http://sree.cc/wp-content/uploads/schogini_team.png");

URLConnection ucon = url.openConnection();

InputStream is = ucon.getInputStream();

BufferedInputStream bis = new BufferedInputStream(is,128);

ByteArrayBuffer barb= new ByteArrayBuffer(128);


int current = 0;

while ((current = bis.read()) != -1) {

    barb.append((byte) current);

}


ContentValues filedata= new ContentValues();


filedata.put(DataBase.IMG_SRC,barb.toByteArray());


db.insert(DataBase.Table_Img, null, filedata);

在Insert():


public void insert(String tableImg, Object object,

        ContentValues dataToInsert) {

    // TODO Auto-generated method stub

    String sql = "INSERT INTO "+tableImg+" ("+ID+","+IMG_SRC+") " +

            "VALUES ('"+1+"','"+dataToInsert+"')";

    db.execSQL(sql);

}

用于检索图像:


Cursor cursor = db.selectDataToShow(DataBase.Table_Img, DataBase.IMG_SRC);


byte[] imageByteArray=cursor.getBlob(cursor.getColumnIndex(DataBase.IMG_SRC));      

cursor.close();


ByteArrayInputStream imageStream = new ByteArrayInputStream(imageByteArray);

Bitmap theImage = BitmapFactory.decodeStream(imageStream);


System.out.println(">>>>>>>>>>>>>>>>>>>>>> "+theImage);

所以我找到了null.


在我的数据库中,图像的值存储为:Image=[B@43e5ac48]


BIG阳
浏览 618回答 3
3回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Android