Android 从SQL信息插入图像

Android 从SQL信息插入图像,android,sqlite,Android,Sqlite,“howard.jpg”在下面的sql语句中做了什么&如何将图像插入到我的android应用程序中 CREATE TABLE IF NOT EXISTS employee ( _id INTEGER PRIMARY KEY AUTOINCREMENT, firstName VARCHAR(50), lastName VARCHAR(50), title VARCHAR(50), department VARCHAR(50), manag

“howard.jpg”在下面的sql语句中做了什么&如何将图像插入到我的android应用程序中

CREATE TABLE IF NOT EXISTS employee ( 
    _id INTEGER PRIMARY KEY AUTOINCREMENT, 
    firstName VARCHAR(50), 
    lastName VARCHAR(50), 
    title VARCHAR(50), 
    department VARCHAR(50), 
    managerId INTEGER, 
    city VARCHAR(50), 
    officePhone VARCHAR(30), 
    cellPhone VARCHAR(30),  
    email VARCHAR(30), 
    picture VARCHAR(200)) 



    INSERT INTO employee VALUES(1,'Ryan','Howard','Vice President, North East', 
'Management', NULL, 'Scranton','570-999-8888','570-999-8887','ryan@dundermifflin.com','howard.jpg')

“howard.jpg”只是放在varchar列中的字符串。对于jpg,您应该使用BLOB而不是varchar,并不是图片的名称,而是图片的实际字节。
有关更多详细信息,请参阅。

要在sqlite数据库中存储图像文件,应使用BLOB字段 由于android sqlite的限制,您应该以以下方式存储信息:

ContentValues cv = new ContentValues();
//your table fields goes here
...
// adding the bitmap in byte array way to the blob field
ByteArrayOutputStream out = new ByteArrayOutputStream();
friendInfo.getImage_bmp().compress(Bitmap.CompressFormat.PNG, 100,out);
cv.put("avatar_img", out.toByteArray());
db.insert(TABLE_NAME, null, cv);
要阅读它,您可以:

byte[] blob = cur.getBlob(cur.getColumnIndex("avatar_img"));
Bitmap bmp = BitmapFactory.decodeByteArray(blob, 0,blob.length, opts);
friend.setImage_bmp(bmp);

friend是一个类的实例,该类具有名为end Image_bmp;)的位图属性

我尝试了很多方法来完成这项工作,但直到

cur.moveToFirst(); 
查询之后,我在这里有空指针:

byte[] imageByteArray = cur.getBlob(cur.getColumnIndex("myImage"));

谢谢还有一件事;如何在数据库中插入纬度/经度,然后打开谷歌地图?