日期:2014-05-16 浏览次数:20518 次
废话不多说,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 "