--------------------------------------------AndroidManifest.xml----------------------------------

<manifestxmlns:android="http://schemas.android.com/apk/res/android"

package="com.ch20"

android:versionCode="1"

android:versionName="1.0">

<uses-sdk

android:minSdkVersion="10"

android:targetSdkVersion="15"/>

<application

android:icon="@drawable/ic_launcher"

android:label="@string/app_name"

android:theme="@style/AppTheme">

<activity

android:name=".ListViewActivity"

android:label="@string/title_activity_main">

<intent-filter>

<actionandroid:name="android.intent.action.MAIN"/>

<categoryandroid:name="android.intent.category.LAUNCHER"/>

</intent-filter>

</activity>

</application>

</manifest>

--------------------------------------------Layoutactivity_main.xml-----------------------------

<LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"

xmlns:tools="http://schemas.android.com/tools"

android:id="@+id/LinearLayout1"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:orientation="vertical">

<Button

android:id="@+id/add_id"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:text="添加数据"/>

<Button

android:id="@+id/delete_id"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:text="删除数据"/>

<Button

android:id="@+id/edit_id"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:text="修改数据"/>

<Button

android:id="@+id/qyery_id"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:text="查询数据"/>

<ListView

android:id="@+id/show_result"

android:layout_width="fill_parent"

android:layout_height="wrap_content">

</ListView>

</LinearLayout>

--------------------------------------------Layoutlist_item.xml----------------------------------

<LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"

xmlns:tools="http://schemas.android.com/tools"

android:id="@+id/LinearLayout1"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:orientation="horizontal">

<TextView

android:id="@+id/view_id"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="id....."/>

<TextView

android:id="@+id/view_name"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="name....."/>

</LinearLayout>

--------------------------------------------数据库工具类DBHelper.java---------------------------

packagecom.ch20;

importandroid.content.ContentValues;

importandroid.content.Context;

importandroid.database.Cursor;

importandroid.database.sqlite.SQLiteDatabase;

importandroid.database.sqlite.SQLiteOpenHelper;

/**

*

*项目名称:com.ch20

*类名称:DBHelper

*类描述:数据库操作工具类

*创建人:方勇

*创建时间:2012-12-4上午8:50:40

*Copyright(c)方勇-版权所有

*/

publicclassDBHelper{

/*DDL,定义数据结构*/

privateDataBaseHelperdbHelper;

/*DML,数据库操作*/

privateSQLiteDatabasedb;

/*数据库名*/

privatefinalstaticStringDATABASE_NAME="a07.db3";

/*版本号*/

privatefinalstaticintDATABASE_VERSION=1;

/*上下文*/

privateContextmcontext;

publicDBHelper(Contextmcontext){

super();

this.mcontext=mcontext;

}

/*静态内部类,针对DDL*/

privatestaticclassDataBaseHelperextendsSQLiteOpenHelper{

publicDataBaseHelper(Contextcontext){

super(context,DATABASE_NAME,null,DATABASE_VERSION);

}

/*创建表结构*/

@Override

publicvoidonCreate(SQLiteDatabasedb){

db.execSQL("createtableifnotexistsstu(idintegerprimarykey,nametext)");

db.execSQL("insertintostuvalues(1,'a1')");

db.execSQL("insertintostuvalues(2,'a2')");

}

/*针对数据库升级*/

@Override

publicvoidonUpgrade(SQLiteDatabasedb,intoldVersion,intnewVersion){

}

}

/*打开数据库,如果已经打开就使用,否则创建*/

publicDBHelperopen(){

dbHelper=newDataBaseHelper(mcontext);

db=dbHelper.getWritableDatabase();

returnthis;

}

/*关闭数据库*/

publicvoidclose(){

db.close();//先关DML

dbHelper.close();//DDL

}

/*插入*/

publiclonginsert(StringtableName,ContentValuesvalues){

return0;

}

/**

*

*更新

*

*@paramtableName表名

*@paramwhereClause条件

*@paramwhereArgs条件值

*@paramvalues更新值

*@return更新的条数

*

*/

publiclongupdate(StringtableName,StringwhereClause,String[]whereArgs,ContentValuesvalues){

returndb.update(tableName,values,whereClause,whereArgs);

}

/*删除*/

publicbooleandelete(StringtableName,StringwhereClause,String[]whereArgs){

returndb.delete(tableName,whereClause,whereArgs)>0;

}

/**

*

*查询,多条记录

*

*@paramtableName表名

*@paramcolumns列名

*@paramselection条件

*@paramselectionArgs条件值

*@paramgroupBy分组

*@paramhaving过滤

*@paramorderBy排序

*@paramlimit分页(2,3),从第二条记录开始,向下取三条记录

*@return动态游标

*

*/

publicCursorfindList(StringtableName,String[]columns,Stringselection,String[]selectionArgs,StringgroupBy,

Stringhaving,StringorderBy,Stringlimit){

returndb.query(tableName,columns,selection,selectionArgs,groupBy,having,orderBy,limit);

}

/**

*

*精确查询,返回一条数据

*

*@paramtableName表名

*@paramcolumns列名

*@paramselection条件

*@paramselectionArgs条件值

*@paramgroupBy分组

*@paramhaving过滤

*@paramorderBy排序

*@paramlimit分页(2,3),从第二条记录开始,向下取三条记录

*@return动态游标

*

*/

publicCursorfindInfo(StringtableName,String[]columns,Stringselection,String[]selectionArgs,StringgroupBy,

Stringhaving,StringorderBy,Stringlimit){

Cursorcursor=db.query(tableName,columns,selection,selectionArgs,groupBy,having,orderBy,limit);

while(cursor.moveToNext()){

cursor.moveToFirst();

}

returncursor;

}

/*执行sql方法*/

publicvoidexecuteSql(Stringsql){

db.execSQL(sql);

}

}

--------------------------------------------ActivityListViewActivity.java-------------------------

packagecom.ch20;

importjava.util.ArrayList;

importjava.util.HashMap;

importjava.util.List;

importandroid.app.Activity;

importandroid.database.Cursor;

importandroid.os.Bundle;

importandroid.view.View;

importandroid.view.View.OnClickListener;

importandroid.widget.Button;

importandroid.widget.ListView;

importandroid.widget.SimpleAdapter;

/**

*

*项目名称:com.ch20

*类名称:ListViewActivity

*类描述:CRUD

*创建人:方勇

*创建时间:2012-12-4上午9:37:39

*Copyright(c)方勇-版权所有

*/

publicclassListViewActivityextendsActivityimplementsOnClickListener{

privateListViewlisView;

privateButtonaddBtn,deleteBtn,editBtn,queryBtn;

privateSimpleAdaptersimpleAdapter;

privateDBHelperdbHelper;

@Override

publicvoidonCreate(BundlesavedInstanceState){

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

findViews();

setListeners();

dbHelper=newDBHelper(this);

init();

}

@Override

publicvoidonClick(Viewv){

switch(v.getId()){

caseR.id.add_id:

break;

caseR.id.delete_id:

break;

caseR.id.edit_id:

break;

caseR.id.qyery_id:

break;

}

}

/*实例化UI*/

privatevoidfindViews(){

addBtn=(Button)findViewById(R.id.add_id);

deleteBtn=(Button)findViewById(R.id.delete_id);

editBtn=(Button)findViewById(R.id.edit_id);

queryBtn=(Button)findViewById(R.id.qyery_id);

lisView=(ListView)findViewById(R.id.show_result);

}

/*设置监听*/

privatevoidsetListeners(){

addBtn.setOnClickListener(this);

deleteBtn.setOnClickListener(this);

editBtn.setOnClickListener(this);

queryBtn.setOnClickListener(this);

}

/*初始化数据*/

privatevoidinit(){

simpleAdapter=newSimpleAdapter(this,getData(),R.layout.list_item,newString[]{"id","name"},newint[]{

R.id.view_id,R.id.view_name});

lisView.setAdapter(simpleAdapter);

}

/*获取数据库集合数据*/

privateList<HashMap<String,Object>>getData(){

dbHelper.open();

Cursorcursor=dbHelper.findList("stu",null,null,null,null,null,null,null);

Listlist=cursor2List(cursor);

dbHelper.close();

returnlist;

}

/*游标转换为集合*/

privateList<HashMap<String,Object>>cursor2List(Cursorcursor){

List<HashMap<String,Object>>list=newArrayList<HashMap<String,Object>>();

/*有记录*/

while(cursor.moveToNext()){

HashMap<String,Object>map=newHashMap<String,Object>();

intid=cursor.getInt(cursor.getColumnIndex("id"));

Stringname=cursor.getString(cursor.getColumnIndex("name"));

map.put("id",id);

map.put("name",name);

list.add(map);

}

returnlist;

}

}

--------------------------------------------效果----------------------------------------------------

ch020 Android SQLite3(第一部分)_第1张图片

<!--EndFragment-->

更多相关文章

  1. android 监听联系人数据库
  2. Android拍照上传至PHP服务器并写入MySql数据库(下)
  3. 【android】当数据库需要更新时我们该怎么办?
  4. Android之解析JSON数据示例(android原生态,FastJson,Gson)
  5. Android 顶部下拉刷新添加数据&& 底部上拉刷新添加数据 ScrollLi
  6. android中的sqlite数据库加密

随机推荐

  1. Android 之 ImageView(图片组件)
  2. Android 深入研究adb
  3. Android中JNI的使用方法
  4. Android从1.0到11版本特性
  5. [android警告]AndroidManifest.xml警告 N
  6. ListView设置分割线Divider样式
  7. android之多线程工作(一)AsyncTask .
  8. Android(cacerts.bks)添加根证书
  9. android 透明activity
  10. 使用Android Studio创建Android Wear项目