- 浏览: 484150 次
- 性别:
- 来自: 北京
最新评论
-
fatalfeel:
Irrlicht 3d Engine is full open ...
转:Android世界的15款开源的游戏开发引擎 -
diyangxia:
BigDecimal怎么初始化全局变量呢
android如何保留小数点后x位数字 -
c1230v:
这是一个程序员应该用的方法吗?求靠谱一点
转:android WebView 控件加载本地sdcard中html文件图片的问题 -
dingbuoyi:
楼主是天才 真牛逼
转:Progressbar-设置自己的样式 -
panxiaoming2008:
记住:显示本地文件时 必须使用APK'>file:/// ...
Android使用WebView加载本地资源
原文地址,转载请说明:http://blog.sina.com.cn/s/blog_539070ad0100nesa.html
Android开发时用到二进制数据(也可以理解为BYTE数组)的SQLite存取,可能会有人对存取如mp3、图片类文件困惑,其实mp3、图片类文件读到内存就可理解为BYTE数组,只要在下面的基础上增加将文件读到BYTE数组就可以了,其他操作是相同的(在网上搜了一段代码放下面了)。 写此文的目的是方便自己今后查询,当然碰巧方便了其他人就当我奉献了:)
package com.Jung.DH;
import java.io.ByteArrayOutputStream;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.util.Log;
// 数据操作类
public class testSeedDB {
private Context mContext = null;
private testDBHelper mDBHelper = null;
private SQLiteDatabase mTestDatabase = null;
private static final String DATABASE_NAME = "DHSeedData.db";
private static final int DATABASE_VERSION = 1;
private static final String TABLE_SEED = "TBseed";
private static final String TABLE_INFO = "TBinfo";
// 构造函数,一个引用类的Context作为参数
public testSeedDB(Context context){
mContext = context;
}
// 打开数据库
public void open(){
mDBHelper = new testDBHelper(mContext,DATABASE_NAME, null, DATABASE_VERSION);
mTestDatabase = mDBHelper.getWritableDatabase();
Log.i("testSeedDB", "open");
}
// Close the database
public void close(){
mDBHelper.close();
}
public void CreateSeedTable() {
// 创建数据表是先删除以前的,以免出错
String sql = "drop table "+ TABLE_SEED;
try {
mTestDatabase.execSQL(sql);
} catch (SQLException e) {
}
// second create table
sql = "CREATE TABLE IF NOT EXISTS " + TABLE_SEED
+ " (ID INTEGER PRIMARY KEY, ToyID INTEGER,ToySeed BLOB,ToyMemo TEXT);";
try {
mTestDatabase.execSQL(sql);
} catch (SQLException ex) {
}
Log.i("testSeedDB", "CreateSeedTable");
}
public void CreateInfoTable() {
// first delete old table
String sql = "drop table"+ TABLE_INFO;
try {
mTestDatabase.execSQL(sql);
} catch (SQLException e) {
}
// second create table
sql = "CREATE TABLE IF NOT EXISTS " + TABLE_INFO
+ " (ToyID INTEGER PRIMARY KEY,ToySeed BLOB,ToyMemo TEXT not null);";
try {
mTestDatabase.execSQL(sql);
} catch (SQLException ex) {
}
}
public void CleanSeedTable() {
try {
mTestDatabase.delete(TABLE_SEED, null, null);
} catch (SQLException e) {
}
Log.i("testSeedDB", "ClearSeedTable");
}
public void insertSeedItem(long ToyID, byte[]ToySeed) {
String sqlstr = "insert into " + TABLE_SEED + " (ToyID, ToySeed,ToyMemo) values (?,?,?);";
Object[] args = new Object[]{ToyID,ToySeed,null};
try{
mTestDatabase.execSQL(sqlstr,args);
} catch (SQLException ex) {
}
Log.i("testSeedDB", "insertSeedItem");
}
public byte[] GetSeedItem(long ToyID) {
Cursor cur;
byte[] strSeed = null;
String col[] = {"ToyID", "ToySeed" ,"ToyMemo"};
String strToy = "ToyID=" + new Integer((int) ToyID).toString();
try{
cur = mTestDatabase.query(TABLE_SEED, col, strToy, null, null, null, null);
cur.moveToFirst();
strSeed = cur.getBlob(1);
} catch (SQLException ex) {
}
if (cur !=null) cur.close;
Log.i("testSeedDB", strToy);
return strSeed;
}
// 数据操作的基础类,作为数据操作的内嵌子类
public class testDBHelper extends SQLiteOpenHelper {
public testDBHelper(Context context, String name, CursorFactory factory,
int version) {
super(context, name, factory, version);
// TODO Auto-generated constructor stub
}
@Override
public voidonCreate(SQLiteDatabase db) {
// TODO Auto-generated method stub
}
@Override
public voidonUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// TODO Auto-generated method stub
}
} // end of testDBHelper
}
// 读文件到 BYTE 来自网上未验证
//http://www.a3gs.com/BookViews.asp?InfoID=2865&ClassID=935
导入包:
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
发表评论
-
service学习
2012-05-16 00:41 883http://www.cnblogs. ... -
InputStream,String,File相互转化
2012-05-14 23:32 12701. String --> InputStream ... -
转:实现类似手机QQ的可折叠固定标题列表
2012-04-12 19:05 1388http://douzifly.cnblog ... -
转:[Android]倒影效果的ImagView
2012-04-06 23:29 1381本文源自:http://blog.csdn.net/ke ... -
转:JDK中的URLConnection参数详解
2012-04-06 23:01 1177针对JDK中的URLConnection连 ... -
转:Game Engines for Android (Android游戏引擎)
2012-03-24 13:12 2721With Google IO fast approach ... -
做Android 系统/应用开发怎么可以不懂自动化测试
2012-03-22 15:02 1150http://blog.csdn.net/yiyaaixuex ... -
让Qt应用程序跑在Android上
2012-03-22 14:55 1361http://blog.c ... -
转:在android 2.3 AVD 模拟器上安装 google market 安卓市场
2012-03-22 14:29 1084http:// ... -
增加 addDataScheme("file") 才能收到SD卡插拔事件的原因分析 -- 浅析android事件过滤策略
2012-03-22 14:26 1961... -
转:andengine中的ParticleSystem
2012-01-18 11:08 1529看ParticleSystemSimpleExample,看得 ... -
test4:腾讯
2011-12-26 20:27 2www.qq.com -
test3:Yahoo
2011-12-26 20:25 2www.yahoo.com -
test2:google
2011-12-26 10:53 5www.google.com.hk -
test1:百度
2011-12-26 10:52 6www.baidu.com -
转:android 打包自己的自定义组件成JAR包
2011-12-24 11:54 1274http://www.cnblogs.c ... -
转:AndEngine中的字体加载及应用
2011-12-15 15:39 1547AndEngine中的字体加载及应用 An ... -
转:Android游戏框架AndEngine使用入门
2011-12-13 14:24 1580项目站点:http://www.andengine.org 项 ... -
转:notification更新数字的显示及AnimationDrawable的结合使用
2011-12-07 10:25 2617这是本人加入博客园的首篇博文,自己平常在工作学习过程遇 ... -
转:Android系统上(mv不可用)cp命令的替代方法
2011-11-30 18:32 9669Android系统上cp命令 ...
相关推荐
BLOB类型通常用于存储非结构化的数据,如图片、音频、视频或者任何二进制文件。以下将详细讲解如何利用VB来存取数据库中的BLOB数据。 首先,我们需要了解BLOB数据的基本概念。BLOB是数据库管理系统中用来存储大量二...
JAVA 中 SQLlite 数据库 BLOB 数据类型的存取是指在 JAVA 语言中使用 SQLlite 数据库来存储和读取大型二进制对象(BLOB),以便实现文件存储和读取的功能。本文将详细介绍如何使用 JAVA 语言来实现 SQLlite 数据库...
总结,SQLite数据库在存取照片时,关键在于将照片转换为二进制数据,然后利用SQLite的blob类型存储,最后在需要时从数据库中取出并还原。这个过程涉及到文件操作、数据库操作以及可能的数据压缩和解压缩。对于开发者...
从数据库读取图片数据并显示在PictureBox中,我们可以使用`SELECT`语句获取二进制数据,然后将其保存为临时文件,最后加载到PictureBox控件: ```csharp // 获取图片ID(假设我们已知) int imageId = 1; // 创建...
在Java中操作SQLite数据库时,BLOB(Binary Large Object)类型的数据处理是较为常见的需求之一,尤其是在需要存储图片、文档等二进制文件的情况下。本文档旨在解决如何在Java环境下通过SQLite有效地存储和提取BLOB...
总的来说,通过将Java对象序列化为二进制数据并存储在SQLite的`BLOB`列中,我们可以实现对象级别的数据存取,这在处理复杂数据结构时能提供便利。然而,这种“另类存取”方式也有其局限性,需要权衡其性能和可维护性...
总结,C#图片数据库存取涉及数据库选择、数据交互方式、图片的二进制存储、元数据管理、查询和检索以及性能优化和安全措施等多个方面。理解并掌握这些知识点,能够帮助开发者构建出高效、安全的图片管理系统。
图片不能直接存入SQLite数据库,因为它们是二进制数据,不适合文本型字段。通常,我们将其转换为`byte[]`或Base64编码字符串存入`BLOB`类型字段。使用`Bitmap`的`compress`方法可将图片转为字节数组,然后存储。 5...
对于图像的存储,这里我们使用了Blob类型来存储二进制数据。注意,存储和读取大体积的图像可能会影响性能,因此在实际应用中,通常会考虑将图像存储到外部存储(如SD卡)并只在需要时加载。 在测试环境中,确保设备...
SQLite不直接支持二进制大对象(BLOB)类型的图片存储,但可以通过转换将图片数据存储为字节串,然后进行读取和显示。下面将详细解释如何在SQLite中进行图片的存取操作,并将其显示在ListView中。 1. **图片转换为...
Android数据库中存取图片通常使用两种方式,一种是保存图片所在路径,二是将图片以二进制的形式存储(sqlite3支持BLOB数据类型)。对于两种方法的使用,好像第二种方法不如第一种方法更受程序员欢迎,他们认为,在很...
《操作数据库V2.0 (可存取图片)》是一个针对SQLite3数据库的实用工具,主要功能在于实现数据库的增删改查操作,并且特别强调了对图片数据的存储和读取。SQLite3是一个轻量级的关系型数据库,广泛应用于移动设备和...
首先,SQL数据库如MySQL、PostgreSQL、SQLite或MS SQL Server等,提供了对BLOB(Binary Large Object)类型字段的支持,这种字段类型可以用来存储像图像这样的二进制大对象。在Delphi中,我们可以使用ADO (ActiveX ...
5. BLOB:二进制大对象,用于存储任意二进制数据,如图片、文档等。 6. NUMERIC:这是一个动态类型,SQLite会根据值的类型自动选择INTEGER或REAL存储。 7. ANY:在某些特殊情况下,SQLite允许使用ANY作为数据类型,...
3. BLOB(Binary Large Object)类型:在数据库中存储声音文件,一般会使用BLOB数据类型,它能存储大块二进制数据。BLOB可以分为不同类型,如BINARY、VARBINARY、LONGBLOB等,选择哪种类型取决于声音文件的大小。 4...
2. **图片存储**:当图片上传时,程序会读取图片文件的二进制数据,然后将其存储到数据库的BLOB字段中。这通常通过编程语言的数据库API完成,例如PHP的PDO,Java的JDBC,Python的sqlite3库等。 3. **数据库操作**:...
以SQL Server为例,我们可以创建一个包含二进制大型对象(BLOB)类型的字段,如`imageData`,用于存储图片的字节流。 ```csharp CREATE TABLE Images ( Id INT PRIMARY KEY, ImageName NVARCHAR(255), imageData...
BLOB 类型用于存储大块二进制数据,如图像文件。 接着,你可以编写一个函数来读取图像文件并将其转换为二进制数据,如下所示: ```delphi function LoadImageToBlob(const FileName: string): TBytes; var ...
在Android开发中,SQLite3是一种常用的轻量级数据库,用于存储结构化数据,包括文本、数字以及二进制数据如图片。本篇文章将详细介绍如何在Android环境下利用sqlite3来保存和读取图片。 首先,我们需要了解SQLite3...