Android 继承SQLiteOpenHelper自定义DBHelper存取数据与图像如下:

package com.test;import java.io.ByteArrayOutputStream;import java.io.IOException;import android.content.ContentValues;import android.content.Context;import android.database.Cursor;import android.database.sqlite.SQLiteDatabase;import android.database.sqlite.SQLiteOpenHelper;import android.graphics.Bitmap;import android.graphics.BitmapFactory;public class DBHelper extends SQLiteOpenHelper {private static final String DB_NAME = "test.db";private static final int DB_VERSION = 1;private static final String TABLE_NAME = "info";private static final String CREATE_INFO = "create table if not exists info("+ "id integer primary key autoincrement,name varchar(20),"+ "time varchar(20),img BLOB)";private SQLiteDatabase db;DBHelper(Context c) {//super(c, DB_NAME, null, DB_VERSION);}@Overridepublic void onCreate(SQLiteDatabase db) {this.db = db;db.execSQL(CREATE_INFO);}public void insert(ContentValues values, String tableName) {db = getWritableDatabase();db.insert(tableName, null, values);db.close();}// Return cursor with all columns by tableNamepublic Cursor query(String tableName) {db = getWritableDatabase();Cursor c = db.query(tableName, null, null, null, null, null, null);return c;}// Return cursor by SQL stringpublic Cursor rawQuery(String sql, String[] args) {db = getWritableDatabase();Cursor c = db.rawQuery(sql, args);return c;}// Execute a single SQL statement(as insert,create,delete)instead of a querypublic void execSQL(String sql) {db = getWritableDatabase();db.execSQL(sql);}// Delete by idpublic void del(int id) {if (db == null)db = getWritableDatabase();db.delete(TABLE_NAME, "id=?", new String[] { String.valueOf(id) });}public void close() {if (db != null)db.close();}@Overridepublic void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {}// Bitmap to byte[]public byte[] bmpToByteArray(Bitmap bmp) {// Default size is 32 bytesByteArrayOutputStream bos = new ByteArrayOutputStream();try {bmp.compress(Bitmap.CompressFormat.JPEG, 100, bos);bos.close();} catch (IOException e) {e.printStackTrace();}return bos.toByteArray();}// Cursor to bitmapBitmap cursorToBmp(Cursor c, int columnIndex) {byte[] data = c.getBlob(columnIndex);try {return BitmapFactory.decodeByteArray(data, 0, data.length);} catch (Exception e) {return null;}}}

DBhelper调用方法:

//定义helperprivate static DBHelper helper;//创建helper helper = new DBHelper(this);//插入数据与图像ContentValues values = new ContentValues();values.put("name", "test");values.put("img", helper.bmpToByteArray(bmp));helper.insert(values, "info");//访问数据与图像Cursor c = helper.rawQuery("select * from info", null);c.moveToLast();String name = c.getString(c.getColumnIndex("name"));Bitmap bmp = cursorToBmp(c, c.getColumnIndex("img"));






 

更多相关文章

  1. android 网络异步加载数据进度条
  2. Android--遍历SQLite数据库下的所有表名
  3. Android——JSONObject解析JSON数据
  4. android Sqlite多线程访问异常解决方案
  5. Android(安卓)判断SD卡是否存在及容量查询
  6. Android(安卓)版本分布数据:Android(安卓)2.3 估超过 50%
  7. listview超强优化
  8. Android(安卓)完美扩大ImageView的点击范围方案
  9. 2013.04.03——— android 图片缓存之二LruCache介绍

随机推荐

  1. android 五大布局文件
  2. SurfaceView 的基本使用
  3. 自定义View系列教程06--详解View的Touch
  4. android APN的打开与关闭
  5. Android(安卓)VR Player(全景视频播放器) [
  6. Android(安卓)AIDL——实现机制浅析
  7. Android系统权限和root权限
  8. android使用websocket保持长连接 后台为n
  9. Android(安卓)Studio 功能测评
  10. Android布局优化