首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > 其他数据库 >

转:Android SQLite 数据库 存取 BLOB 二进制 资料

2012-07-04 
转:Android SQLite 数据库 存取 BLOB 二进制 文件原文地址,转载请说明:http://blog.sina.com.cn/s/blog_53

转:Android SQLite 数据库 存取 BLOB 二进制 文件

原文地址,转载请说明: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;

热点排行