SQLiteOpenHelper的使用,对数据库操作的封装
2011-01-24 01:25
746 查看
SQLiteOpenHelper封装继承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; } } |
相关文章推荐
- 使用SQLiteOpenHelper获取用于操作数据库的SQLiteDatabase实例
- 使用SQLiteOpenHelper获取用于操作数据库的SQLiteDatabase实例
- 使用 SQLiteOpenHelper 对数据库进行操作
- android 之SQLite使用SQLiteOpenHelper对数据库操作
- Xamarin.Android 使用 SQLiteOpenHelper 进行数据库操作
- 我的android 第15天 -使用SQLiteOpenHelper获取用于操作数据库的SQLiteDatabase实例
- 使用SQLiteOpenHelper获取用于操作数据库的SQLiteDatabase实例
- 【安卓面试题】使用SQLiteOpenHelper的getReadableDatabase()获得的数据库能不能,做写的操作
- android数据库操作SQLiteOpenHelper
- android开发(24)使用SQLiteOpenHelper的onUpgrade实现数据库版本升级
- 【转】Android使用SQLiteOpenHelper对数据库进行版本管理【学习记录】
- Android学习笔记_9_SQLiteOpenHelper对象之数据库增删改查以及事务回滚操作
- Android数据库SQLite的使用详解(SQLiteOpenHelper,SQLiteDataBase)【看后面简约进阶版】access中数据库拷贝到本地
- SQLiteOpenHelper数据库打开连接帮助类使用说明
- Android 使用SQLiteOpenHelper对数据库进行版本管理
- android数据库编程----SqLiteOpenHelper的使用
- Android下SQLite3数据库操作笔记(二)之-SQLiteOpenHelper
- Android如何使用SQLiteOpenHelper在已经存在的数据库中插入一个字段
- SQLite使用方法 SQLiteOpenHelper操作
- IOS-20-数据库操作之(SQLite第三方封装库FMDB)的基础入门使用及demo源码