日期:2014-05-16 浏览次数:20423 次
废话不多说,Android撑死算个入门选手,刚好有点时间,随之倒腾整理下Android数据库操作。码农只需要代码和原理,理论从代码中自己感悟。小二,上代码,弄。
功能基本包含了数据库基本功能,至于运行后人机操作界面只是随便写了个布局方便测试而已。
com/jesse/dbasetest1/DbAdapter.java(用来管理数据库,简单的例子嘛,规范啥的就免了,重在说理)。
package com.jesse.dbasetest1; import android.content.ContentValues; import android.content.Context; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteDatabase.CursorFactory; import android.database.sqlite.SQLiteOpenHelper; import android.util.Log; /** * @author Jesse * just for myself learn android SQLite. */ public class DbAdapter { public static final String TAG = DbAdapter.class.getSimpleName(); private Context mContext; public static final String KEY_ID = "_id"; public static final String KEY_NAME = "name"; public static final String KEY_AGE = "age"; public static final String KEY_SEX = "sex"; public static final String DBASE_NAME = "persons"; public static final String DBASE_TABLE = "base_info_table"; public static final int DBASE_VERSION = 1; public static final String DBASE_CREATE = "create table base_info_table " + "(_id integer primary key autoincrement, " + "name text not null, " + "age text not null, " + "sex text not null);"; private DataBaseHelper mBaseHelper; private SQLiteDatabase mDb; public DbAdapter(Context context) { this.mContext = context; mBaseHelper = new DataBaseHelper(mContext, DBASE_NAME, null, DBASE_VERSION); } public DbAdapter openDbase() { mDb = mBaseHelper.getWritableDatabase(); return this; } public void closeDbase() { mBaseHelper.close(); } public long insertPersonInfo(PersonInfo person) { ContentValues initialValues = new ContentValues(); initialValues.put(KEY_NAME, person.name); initialValues.put(KEY_AGE, person.age); initialValues.put(KEY_SEX, person.sex); return mDb.insert(DBASE_TABLE, null, initialValues); } public boolean deletePersonInfo(long rowId) { return (mDb.delete(DBASE_TABLE, KEY_ID + "=" + rowId, null) > 0); } public Cursor getAllPersonInfo() { return mDb.query(DBASE_TABLE, new String[]{KEY_ID, KEY_NAME, KEY_AGE, KEY_SEX}, null, null, null, null, null); } public Cursor getPersonInfo(long rowId) { Cursor mCursor = mDb.query(DBASE_TABLE, new String[]{KEY_ID, KEY_NAME, KEY_AGE, KEY_SEX}, KEY_ID + "=" + rowId, null, null, null, null); if (null != mCursor) { mCursor.moveToFirst(); } return mCursor; } public boolean updatePersonInfo(long rowId, PersonInfo person) { ContentValues initialValues = new ContentValues(); initialValues.put(KEY_NAME, person.name); initialValues.put(KEY_AGE, person.age); initialValues.put(KEY_SEX, person.sex); return (mDb.update(DBASE_TABLE, initialValues, KEY_ID + "=" + rowId, null) > 0); } //----------------------------------------------------------------- private class DataBaseHelper extends SQLiteOpenHelper{ public DataBaseHelper(Context context, String name, CursorFactory factory, int version) { super(context, name, factory, version); // TODO Auto-generated constructor stub } @Override public void onCreate(SQLiteDatabase db) { // TODO Auto-generated method stub db.execSQL(DBASE_CREATE); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { // TODO Auto-generated method stub Log.w(TAG, "Upgrading database from version "