- 浏览: 133602 次
- 性别:
文章分类
最新评论
Android 继承SQLiteOpenHelper自定义DBHelper存取数据与图像
- 博客分类:
- Android
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); } @Override public 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 tableName public Cursor query(String tableName) { db = getWritableDatabase(); Cursor c = db.query(tableName, null, null, null, null, null, null); return c; } // Return cursor by SQL string public 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 query public void execSQL(String sql) { db = getWritableDatabase(); db.execSQL(sql); } // Delete by id public 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(); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { } // Bitmap to byte[] public byte[] bmpToByteArray(Bitmap bmp) { // Default size is 32 bytes ByteArrayOutputStream bos = new ByteArrayOutputStream(); try { bmp.compress(Bitmap.CompressFormat.JPEG, 100, bos); bos.close(); } catch (IOException e) { e.printStackTrace(); } return bos.toByteArray(); } // Cursor to bitmap Bitmap cursorToBmp(Cursor c, int columnIndex) { byte[] data = c.getBlob(columnIndex); try { return BitmapFactory.decodeByteArray(data, 0, data.length); } catch (Exception e) { return null; } } }
DBhelper调用方法:
//定义helper private 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"));
发表评论
-
Android onTouchEvent, onClick及onLongClick的调用机制
2012-03-08 15:44 853针对屏幕上的一个View控件,Android如何区分应当触发o ... -
android 常用颜色表
2012-03-09 16:01 859<?xml version="1.0" ... -
android ndk 环境搭建及基本编程思路
2012-03-28 16:09 847本文主要是介绍一下android ndk环境搭建及基本编程思路 ... -
windows下eclipse android-ndkr7b环境配置
2012-03-31 19:49 869注意:android-ndkr7b版本中已经集成了cyg ... -
配置 eclipse ndk 环境遇到的问题
2012-04-01 08:52 945困惑了两天的环境配置问题,按照网上提供的方法去做总是错误 ... -
Android 配置 OpenCV2.3.1
2012-04-01 17:56 1983OpenCV2.3.1-android中大部分重要的AP ... -
Android中dip与px之间单位转换
2012-04-11 16:10 690/** * 根据手机的分辨率从dip 的单位转成为px(像素 ... -
Android 自定义像素AVD模拟器无键盘
2012-04-18 14:26 3359在Android自定义像素(如:800X480)时,AV ... -
在Android虚拟机AVD中安装APK
2012-04-18 15:13 2579为了方便测试,有时候会需要在自定义的Android虚拟机A ... -
Android SurfaceView onDraw()绘图问题
2012-06-29 11:32 9935在继承SurfaceView的类中即使重写了onDraw ... -
Android 自定义渐变背景
2012-07-04 08:36 1207在Eclipse的Android工程的res下建立dra ... -
Android 隐藏系统状态栏和标题栏
2012-07-04 09:06 1178Android中若想 隐藏系统状态栏和标题栏(全屏显示)的 ... -
Android双SurfaceView实现底部拍照,顶部绘图
2012-07-04 10:36 1478当SurfaceHolder对象的类型设置为Surf ... -
Android数据的四种存储方式之SharedPreferences、SQLite、ContentProvider和File
2012-07-06 15:32 2713Android系统一共提供了四种数据存储方式,分别 ... -
Android SQLite存取图像
2012-07-06 18:36 904Android SQLite存取图像的简单方法如下: ... -
Android使用SQLiteDatabase直接存取数据与图像
2012-07-10 15:15 1012Android使用SQLiteDatabase直接存取数 ... -
Android 系统菜单与自定义菜单
2012-07-25 16:28 2184Android 系统菜单与自 ...
相关推荐
数据库的使用,包含增删改查,是使用android 内置的数据库助手类实现的
Android高级编程雪梨作业之自定义ContentProvider 将任务01生词本作业中生成的生词本数据库通过自定义ContentProvider的方式,共享给其他应用。 要求如下: (1) 使用自定义SQLiteOpenHelper来管理数据库; (2) 提交...
android SQLiteOpenHelper 数据库简单应用,今天闲着没事自己写的demo
数据库助手示例这是一个 Android DBHelper 示例,它扩展了 SQLiteOpenHelper
android的SQLiteOpenHelper类的应用实例.docx
在android studio中存储数据有三个方法,分别是: (1)简单存储——SharedPreferences (2)文件存储: 内部存储——应用程序私有文件 外部存储——SD卡 资源文件——只读( RAW 、XML) (3)数据库存储——...
在android中常用存储数据的基本就三种,sqlite,SharedPreferences,文件存储,其中针对于对象存储,使用sqlite比较多,因为可以对其进行增删改查。本文主要讲解SQLiteOpenHelper的封装使用,代码引用自...
SQLiteOpenHelper重点在于helper,他是SQLiteDatabase的一个帮助类,便于开发者实现对SQLite的数据进行写入(增删改)和读取(查询)。 2. SQLiteOpenHelper具体有什么方法? 使用SQLiteOpenHelper,便是构建一个类...
NULL 博文链接:https://davidhhs.iteye.com/blog/2150780
NULL 博文链接:https://byandby.iteye.com/blog/836250
1.建立DbHelper类: ...import android.database.sqlite.SQLiteOpenHelper; public class DbHelper extends SQLiteOpenHelper { public DbHelper(Context context, String name, CursorFactory factory,
主要介绍了Android开发之Sqliteopenhelper用法,实例分析了SQLiteOpenHelper类操作数据库的相关技巧,需要的朋友可以参考下
android 手机数据库 实现SQLiteOpenHelper
068集-SQLiteOpenHelper(2)视频教程,个人感觉还可以,共享给大家。
android项目添加数据库,利用SQLiteOpenHelper创建数据库文件的Demo
在android studio中用SQLiteOpenHelper()方法建立数据库 注:这篇文章是承接上面发的链接的文章,有什么问题欢迎讨论 用SQLiteOpenHelper()方法创建表结构可以用onCreat()函数和onUpgrade()函数 一.用...
在android studio中存储数据有三个方法,分别是: (1)简单存储——SharedPreferences (2)文件存储:内部存储——应用程序私有文件外部存储——SD卡资源文件——只读( RAW 、XML) (3)数据库存储——...
对Android数据库SQlite的基本操作,打开或新建数据库,增,删,改,查。 SQLiteOpenHelper类的运用。 ListView的运用和适配器的使用。 Menu键的使用。
(代码模板)新建一个SQLiteOpenHelper助手类.xml