Chinaunix首页 | 论坛 | 博客
  • 博客访问: 460537
  • 博文数量: 155
  • 博客积分: 2954
  • 博客等级: 少校
  • 技术积分: 1000
  • 用 户 组: 普通用户
  • 注册时间: 2010-01-12 22:00
文章分类

全部博文(155)

文章存档

2014年(2)

2013年(5)

2012年(10)

2011年(33)

2010年(105)

我的朋友

分类: 嵌入式

2010-08-23 16:34:15

继承SQLiteOpenHelper类,在构造方法中分别需要传入Context,数据库名称,CursorFactory(一般传入null,为默认数据库),数据库版本号(不能为负数)。在SQLiteOpenHelper中首先执行的是onCreate方法(当shujk第一次被创建时)。在构造函数时并没有真正创建数据库,而在调用getWritableDatabase或者getReadableDatabase方法时才真正去创建数据库,返回一个SQLiteDatabase对象。

public class MyDataBaseAdapter 
{ 
   // 用于打印log 
   private static final String TAG = "MyDataBaseAdapter"; 
 
   // 表中一条数据的名称 
   public static final String KEY_ID = "_id"; 
 
   // 表中一条数据的内容 
   public static final String KEY_NUM = "num"; 
   // 表中一条数据的id 
   public static final String KEY_DATA = "data"; 
 
   // 数据库名称为data 
   private static final String DB_NAME = "Examples_06_06.db"; 
         
   // 数据库表名 
   private static final String DB_TABLE = "table1"; 
         
   // 数据库版本 
   private static final int DB_VERSION = 1; 
 
   // 本地Context对象 
   private Context mContext = null; 
         
   //创建一个表 
   private static final String DB_CREATE = "CREATE TABLE " + DB_TABLE + " (" + KEY_ID + " INTEGER PRIMARY KEY," + KEY_NUM + " INTERGER,"+ KEY_DATA + " TEXT)"; 
 
   // 执行open()打开数据库时,保存返回的数据库对象 
   private SQLiteDatabase mSQLiteDatabase = null; 
 
   // 由SQLiteOpenHelper继承过来 
   private DatabaseHelper mDatabaseHelper = null; 
         
         
   private static class DatabaseHelper extends SQLiteOpenHelper{ 
 
      /* 构造函数-创建一个数据库 */ 
      DatabaseHelper(Context context){ 
 
         //当调用getWritableDatabase()  
         //或 getReadableDatabase()方法时 
         //则创建一个数据库 
         super(context, DB_NAME, null, DB_VERSION); 
      } 
 
      /* 创建一个表 */ 
      @Override 
      public void onCreate(SQLiteDatabase db){ 
 
         // 数据库没有表时创建一个 
         db.execSQL(DB_CREATE); 
      } 
 
      /* 升级数据库 */ 
      @Override 
      public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion){ 
 
         db.execSQL("DROP TABLE IF EXISTS notes"); 
         onCreate(db); 
      } 
   } 
         
   /* 构造函数-取得Context */ 
   public MyDataBaseAdapter(Context context){ 
 
         mContext = context; 
   } 
 
 
   // 打开数据库,返回数据库对象 
   public void open() throws SQLException{ 
 
         mDatabaseHelper = new DatabaseHelper(mContext); 
         mSQLiteDatabase = mDatabaseHelper.getWritableDatabase(); 
   } 
 
 
   // 关闭数据库 
   public void close(){ 
 
         mDatabaseHelper.close(); 
   } 
 
   /* 插入一条数据 */ 
   public long insertData(int num, String data){ 
 
         ContentValues initialValues = new ContentValues(); 
         initialValues.put(KEY_NUM, num); 
         initialValues.put(KEY_DATA, data); 
 
         return mSQLiteDatabase.insert(DB_TABLE, KEY_ID, initialValues); 
   } 
 
   /* 删除一条数据 */ 
   public boolean deleteData(long rowId){ 
 
         return mSQLiteDatabase.delete(DB_TABLE, KEY_ID + "=" + rowId, null) > 0; 
   } 
 
   /* 通过Cursor查询所有数据 */ 
   public Cursor fetchAllData(){ 
 
         return mSQLiteDatabase.query(DB_TABLE, new String[] { KEY_ID, KEY_NUM, KEY_DATA }, null, null, null, null, null); 
   } 
 
   /* 查询指定数据 */ 
   public Cursor fetchData(long rowId) throws SQLException{ 
 
      Cursor mCursor = mSQLiteDatabase.query(true, DB_TABLE, new String[] { KEY_ID, KEY_NUM, KEY_DATA }, KEY_ID + "=" + rowId, null, null, null, null, null); 
 
      if (mCursor != null){ 
 
         mCursor.moveToFirst(); 
      } 
      return mCursor; 
 
   } 
 
   /* 更新一条数据 */ 
   public boolean updateData(long rowId, int num, String data){ 
 
      ContentValues args = new ContentValues(); 
      args.put(KEY_NUM, num); 
      args.put(KEY_DATA, data); 
 
      return mSQLiteDatabase.update(DB_TABLE, args, KEY_ID + "=" + rowId, null) > 0; 
   } 
         
}
阅读(1111) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~