转载地址:http://blog.csdn.net/yanbober/article/details/20688273
废话不多说,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 " + oldVersion
- + " to " + newVersion + ", which will destroy all old data");
- db.execSQL("DROP TABLE IF EXISTS titles");
- onCreate(db);
- }
- }
- }
- package com.jesse.dbasetest1;
- import android.os.Bundle;
- import android.app.Activity;
- import android.content.Context;
- import android.database.Cursor;
- import android.view.View;
- import android.view.View.OnClickListener;
- import android.widget.Button;
- import android.widget.EditText;
- import android.widget.TextView;
- import android.widget.Toast;
- public class MainActivity extends Activity {
- private Context mContext;
- private EditText mNameEdTxt;
- private EditText mAgeEdTxt;
- private EditText mSexEdTxt;
- private Button mAddBtn;
- private EditText mRmIdEdTxt;
- private Button mRemoveBtn;
- private EditText mPersonIdEdTxt;
- private TextView mOneText;
- private Button mGetOneBtn;
- private EditText mIdUpEdTxt;
- private EditText mNameUpEdTxt;
- private EditText mAgeUpEdTxt;
- private EditText mSexUpEdTxt;
- private Button mUpBtn;
- private TextView mAllText;
- private Button mGetAllBtn;
- private DbAdapter mDbAdapter;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- initData();
- }
- private void initData()
- {
- mContext = MainActivity.this;
- mNameEdTxt = (EditText) this.findViewById(R.id.person_name);
- mAgeEdTxt = (EditText) this.findViewById(R.id.person_age);
- mSexEdTxt = (EditText) this.findViewById(R.id.person_sex);
- mAddBtn = (Button) this.findViewById(R.id.add_btn);
- mRmIdEdTxt = (EditText) this.findViewById(R.id.person_id);
- mRemoveBtn = (Button) this.findViewById(R.id.remove_btn);
- mPersonIdEdTxt = (EditText) this.findViewById(R.id.get_person_id);
- mOneText = (TextView) this.findViewById(R.id.one_person_info);
- mGetOneBtn = (Button) this.findViewById(R.id.get_one_btn);
- mIdUpEdTxt = (EditText) this.findViewById(R.id.id_up);
- mNameUpEdTxt = (EditText) this.findViewById(R.id.person_name_up);
- mAgeUpEdTxt = (EditText) this.findViewById(R.id.person_age_up);
- mSexUpEdTxt = (EditText) this.findViewById(R.id.person_sex_up);
- mUpBtn = (Button) this.findViewById(R.id.update_btn);
- mAllText = (TextView) this.findViewById(R.id.all_person_info);
- mGetAllBtn = (Button) this.findViewById(R.id.get_all_btn);
- mAddBtn.setOnClickListener(addBtnClickListener);
- mRemoveBtn.setOnClickListener(removeBtnClickListener);
- mGetOneBtn.setOnClickListener(getOneBtnClickListener);
- mUpBtn.setOnClickListener(upBtnClickListener);
- mGetAllBtn.setOnClickListener(getAllBtnClickListener);
- mDbAdapter = new DbAdapter(mContext);
- mDbAdapter.openDbase();
- }
- OnClickListener addBtnClickListener = new OnClickListener() {
- @Override
- public void onClick(View v) {
- // TODO Auto-generated method stub
- PersonInfo tempPerson = new PersonInfo();
- tempPerson.name = mNameEdTxt.getText().toString();
- tempPerson.age = mAgeEdTxt.getText().toString();
- tempPerson.sex = mSexEdTxt.getText().toString();
- if ((mNameEdTxt.getText()!=null)&&(mAgeEdTxt.getText()!=null)&&(mSexEdTxt.getText()!=null))
- {
- if (mDbAdapter.insertPersonInfo(tempPerson) >= 0)
- {
- Toast.makeText(mContext, "Add data to dbase successfull!", Toast.LENGTH_LONG).show();
- }
- }
- else
- {
- Toast.makeText(mContext, "Please resure your input data is full ok?", Toast.LENGTH_LONG).show();
- }
- }
- };
- OnClickListener removeBtnClickListener = new OnClickListener() {
- @Override
- public void onClick(View v) {
- // TODO Auto-generated method stub
- if (mRmIdEdTxt.getText()!=null)
- {
- if (mDbAdapter.deletePersonInfo(Integer.parseInt(mRmIdEdTxt.getText().toString())) == true)
- {
- Toast.makeText(mContext, "Remove data from dbase successfull!", Toast.LENGTH_LONG).show();
- }
- else
- {
- Toast.makeText(mContext, "Remove data from dbase failed!", Toast.LENGTH_LONG).show();
- }
- }
- else
- {
- Toast.makeText(mContext, "Please resure your input id is full ok?", Toast.LENGTH_LONG).show();
- }
- }
- };
- OnClickListener getOneBtnClickListener = new OnClickListener() {
- @Override
- public void onClick(View v) {
- // TODO Auto-generated method stub
- if (mPersonIdEdTxt.getText()!=null)
- {
- int idInPut = Integer.parseInt(mPersonIdEdTxt.getText().toString());
- Cursor cursor = mDbAdapter.getPersonInfo(idInPut);
- if (cursor.moveToFirst() == true)
- {
- PersonInfo personInfo = new PersonInfo();
- String id = cursor.getString(cursor.getColumnIndex(DbAdapter.KEY_ID));
- personInfo.name = cursor.getString(cursor.getColumnIndex(DbAdapter.KEY_NAME));
- personInfo.age = cursor.getString(cursor.getColumnIndex(DbAdapter.KEY_AGE));
- personInfo.sex = cursor.getString(cursor.getColumnIndex(DbAdapter.KEY_SEX));
- cursor.close();
- String str = "No:"+id+",name:"+personInfo.name+",age:"+personInfo.age+",sex:"+personInfo.sex;
- mOneText.setText(str);
- }
- else
- {
- Toast.makeText(mContext, "Get One data from dbase failed!", Toast.LENGTH_LONG).show();
- }
- }
- else
- {
- Toast.makeText(mContext, "Please resure your input id is full ok?", Toast.LENGTH_LONG).show();
- }
- }
- };
- OnClickListener upBtnClickListener = new OnClickListener() {
- @Override
- public void onClick(View v) {
- // TODO Auto-generated method stub
- PersonInfo tempPerson = new PersonInfo();
- tempPerson.name = mNameUpEdTxt.getText().toString();
- tempPerson.age = mAgeUpEdTxt.getText().toString();
- tempPerson.sex = mSexUpEdTxt.getText().toString();
- if (mDbAdapter.updatePersonInfo(Integer.parseInt(mIdUpEdTxt.getText().toString()), tempPerson) == true)
- {
- Toast.makeText(mContext, "Update data to dbase successfull!", Toast.LENGTH_LONG).show();
- }
- else
- {
- Toast.makeText(mContext, "Update data to dbase falied!", Toast.LENGTH_LONG).show();
- }
- }
- };
- OnClickListener getAllBtnClickListener = new OnClickListener() {
- @Override
- public void onClick(View v) {
- // TODO Auto-generated method stub
- Cursor cursor = mDbAdapter.getAllPersonInfo();
- if (cursor.moveToFirst() == true)
- {
- String str = "";
- for (int index=0; index<cursor.getCount(); index++)
- {
- PersonInfo temp = new PersonInfo();
- String id = cursor.getString(cursor.getColumnIndex(DbAdapter.KEY_ID));
- temp.name = cursor.getString(cursor.getColumnIndex(DbAdapter.KEY_NAME));
- temp.age = cursor.getString(cursor.getColumnIndex(DbAdapter.KEY_AGE));
- temp.sex = cursor.getString(cursor.getColumnIndex(DbAdapter.KEY_SEX));
- str = str + "No:"+id+",name:"+temp.name+",age:"+temp.age+",sex:"+temp.sex + "\n";
- cursor.moveToNext();
- }
- cursor.close();
- mAllText.setText(str);
- }
- else
- {
- Toast.makeText(mContext, "Get All data from dbase failed!", Toast.LENGTH_LONG).show();
- }
- }
- };
- @Override
- protected void onDestroy() {
- // TODO Auto-generated method stub
- super.onDestroy();
- mDbAdapter.closeDbase();
- }
- }
- <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:background="@drawable/bg"
- android:gravity="center"
- android:orientation="vertical"
- tools:context=".MainActivity" >
- <TextView
- android:id="@+id/title"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="Jesse Android SQLite Person Info"
- android:textColor="@android:color/holo_red_light"
- android:textSize="30sp" />
- <TextView
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="Sina微博昵称:工匠若水"
- android:textColor="@android:color/black"
- android:textSize="15sp" />
- <LinearLayout
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:layout_marginLeft="100dp"
- android:layout_marginRight="100dp"
- android:layout_marginTop="10dp"
- android:orientation="horizontal" >
- <EditText
- android:id="@+id/person_name"
- android:layout_width="0dp"
- android:layout_height="wrap_content"
- android:layout_weight="1"
- android:hint="name"
- android:inputType="text"
- android:singleLine="true"
- android:textColorHint="@android:color/darker_gray"
- android:textSize="20sp" />
- <EditText
- android:id="@+id/person_age"
- android:layout_width="0dp"
- android:layout_height="wrap_content"
- android:layout_weight="1"
- android:hint="age"
- android:inputType="number"
- android:singleLine="true"
- android:textColorHint="@android:color/darker_gray"
- android:textSize="20sp" />
- <EditText
- android:id="@+id/person_sex"
- android:layout_width="0dp"
- android:layout_height="wrap_content"
- android:layout_weight="1"
- android:hint="sex"
- android:inputType="text"
- android:singleLine="true"
- android:textColorHint="@android:color/darker_gray"
- android:textSize="20sp" />
- <Button
- android:id="@+id/add_btn"
- android:layout_width="0dp"
- android:layout_height="wrap_content"
- android:layout_weight="1"
- android:text="Add"
- android:textColor="@android:color/holo_blue_dark"
- android:textSize="20sp" />
- </LinearLayout>
- <LinearLayout
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:layout_marginLeft="100dp"
- android:layout_marginRight="100dp"
- android:layout_marginTop="40dp"
- android:orientation="horizontal" >
- <EditText
- android:id="@+id/person_id"
- android:layout_width="0dp"
- android:layout_height="wrap_content"
- android:layout_weight="1"
- android:hint="id"
- android:inputType="number"
- android:singleLine="true"
- android:textColorHint="@android:color/darker_gray"
- android:textSize="20sp" />
- <TextView
- android:id="@+id/temp"
- android:layout_width="0dp"
- android:layout_height="wrap_content"
- android:layout_weight="2" />
- <Button
- android:id="@+id/remove_btn"
- android:layout_width="0dp"
- android:layout_height="wrap_content"
- android:layout_weight="1"
- android:text="Remove"
- android:textColor="@android:color/holo_blue_dark"
- android:textSize="20sp" />
- </LinearLayout>
- <LinearLayout
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:layout_marginLeft="100dp"
- android:layout_marginRight="100dp"
- android:layout_marginTop="40dp"
- android:orientation="horizontal" >
- <EditText
- android:id="@+id/get_person_id"
- android:layout_width="0dp"
- android:layout_height="wrap_content"
- android:layout_weight="1"
- android:hint="id"
- android:inputType="text"
- android:singleLine="true"
- android:textColorHint="@android:color/darker_gray"
- android:textSize="20sp" />
- <TextView
- android:id="@+id/one_person_info"
- android:layout_width="0dp"
- android:layout_height="wrap_content"
- android:layout_weight="2"
- android:background="@android:color/white"
- android:text="wait get person info!"
- android:textSize="20sp" />
- <Button
- android:id="@+id/get_one_btn"
- android:layout_width="0dp"
- android:layout_height="wrap_content"
- android:layout_weight="1"
- android:text="Get One"
- android:textColor="@android:color/holo_blue_dark"
- android:textSize="20sp" />
- </LinearLayout>
- <LinearLayout
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:layout_marginLeft="100dp"
- android:layout_marginRight="100dp"
- android:layout_marginTop="40dp"
- android:orientation="horizontal" >
- <EditText
- android:id="@+id/id_up"
- android:layout_width="0dp"
- android:layout_height="wrap_content"
- android:layout_weight="1"
- android:hint="id of update"
- android:inputType="text"
- android:singleLine="true"
- android:textColorHint="@android:color/darker_gray"
- android:textSize="20sp" />
- <EditText
- android:id="@+id/person_name_up"
- android:layout_width="0dp"
- android:layout_height="wrap_content"
- android:layout_weight="1"
- android:hint="new name"
- android:inputType="text"
- android:singleLine="true"
- android:textColorHint="@android:color/darker_gray"
- android:textSize="20sp" />
- <EditText
- android:id="@+id/person_age_up"
- android:layout_width="0dp"
- android:layout_height="wrap_content"
- android:layout_weight="1"
- android:hint="new age"
- android:inputType="number"
- android:singleLine="true"
- android:textColorHint="@android:color/darker_gray"
- android:textSize="20sp" />
- <EditText
- android:id="@+id/person_sex_up"
- android:layout_width="0dp"
- android:layout_height="wrap_content"
- android:layout_weight="1"
- android:hint="new sex"
- android:inputType="text"
- android:singleLine="true"
- android:textColorHint="@android:color/darker_gray"
- android:textSize="20sp" />
- <Button
- android:id="@+id/update_btn"
- android:layout_width="0dp"
- android:layout_height="wrap_content"
- android:layout_weight="1"
- android:text="Update"
- android:textColor="@android:color/holo_blue_dark"
- android:textSize="20sp" />
- </LinearLayout>
- <LinearLayout
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:layout_marginLeft="100dp"
- android:layout_marginRight="100dp"
- android:layout_marginTop="40dp"
- android:orientation="horizontal" >
- <TextView
- android:id="@+id/all_person_info"
- android:layout_width="0dp"
- android:layout_height="150dp"
- android:layout_weight="3"
- android:background="@android:color/white"
- android:text="wait get all person info!"
- android:textSize="20sp" />
- <Button
- android:id="@+id/get_all_btn"
- android:layout_width="0dp"
- android:layout_height="wrap_content"
- android:layout_weight="1"
- android:text="Get ALL"
- android:textColor="@android:color/holo_blue_dark"
- android:textSize="20sp" />
- </LinearLayout>
- </LinearLayout>
好了,至于去哪找运行后的数据库文件和上哪用啥工具查看,自己想办法吧,不解释,你懂的,easy!