`
byandby
  • 浏览: 1696085 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

android SQLite数据库基本操作示例

阅读更多
      这个例子实现了一个完整的数据库操作示例。首先运行项目,初始化数据库(创建数据库、创建表);然后点击左方向键向表中插入一条数据,按右方向键删除一条数据,按数字键1修改表中指定的一条数据,数字键2可以删除一个表,数字键1 删除数据库。效果图如下



这个例子就一个类 Activity01 代码稍微有点长了 大家慢慢看。
package com.yarin.android.Examples_06_05;

import android.app.Activity;
import android.content.ContentValues;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.graphics.Color;
import android.os.Bundle;
import android.view.KeyEvent;
import android.widget.LinearLayout;
import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.SimpleCursorAdapter;

public class Activity01 extends Activity
{
	private static int			miCount			= 0;

	/* 数据库对象 */
	private SQLiteDatabase		mSQLiteDatabase	= null;

	/* 数据库名 */
	private final static String	DATABASE_NAME	= "Examples_06_05.db";
	/* 表名 */
	private final static String	TABLE_NAME		= "table1";

	/* 表中的字段 */
	private final static String	TABLE_ID		= "_id";
	private final static String	TABLE_NUM		= "num";
	private final static String	TABLE_DATA		= "data";

	/* 创建表的sql语句 */
	private final static String	CREATE_TABLE	= "CREATE TABLE " + TABLE_NAME + " (" + TABLE_ID + " INTEGER PRIMARY KEY," + TABLE_NUM + " INTERGER,"+ TABLE_DATA + " TEXT)";

	/* 线性布局 */
	LinearLayout				m_LinearLayout	= null;
	/* 列表视图-显示数据库中的数据 */
	ListView					m_ListView		= null;


	/** Called when the activity is first created. */
	@Override
	public void onCreate(Bundle savedInstanceState)
	{
		super.onCreate(savedInstanceState);

		/* 创建LinearLayout布局对象 */
		m_LinearLayout = new LinearLayout(this);
		/* 设置布局LinearLayout的属性 */
		m_LinearLayout.setOrientation(LinearLayout.VERTICAL);
		m_LinearLayout.setBackgroundColor(android.graphics.Color.BLACK);

		/* 创建ListView对象 */
		m_ListView = new ListView(this);
		LinearLayout.LayoutParams param = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.FILL_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT);
		m_ListView.setBackgroundColor(Color.BLACK);

		/* 添加m_ListView到m_LinearLayout布局 */
		m_LinearLayout.addView(m_ListView, param);

		/* 设置显示m_LinearLayout布局 */
		setContentView(m_LinearLayout);

		// 打开已经存在的数据库
		mSQLiteDatabase = this.openOrCreateDatabase(DATABASE_NAME, MODE_PRIVATE, null);

		// 获取数据库Phones的Cursor
		try
		{
			/* 在数据库mSQLiteDatabase中创建一个表 */
			mSQLiteDatabase.execSQL(CREATE_TABLE);
		}
		catch (Exception e)
		{
			UpdataAdapter();
		}
	}


	public boolean onKeyUp(int keyCode, KeyEvent event)
	{
		switch (keyCode)
		{
			case KeyEvent.KEYCODE_DPAD_LEFT:
				AddData();
				break;
			case KeyEvent.KEYCODE_DPAD_RIGHT:
				DeleteData();
				break;
			case KeyEvent.KEYCODE_1:
				UpData();
				break;
			case KeyEvent.KEYCODE_2:
				DeleteTable();
				break;
			case KeyEvent.KEYCODE_3:
				DeleteDataBase();
				break;
		}
		return true;
	}


	/* 删除数据库 */
	public void DeleteDataBase()
	{
		this.deleteDatabase(DATABASE_NAME);
		this.finish();
	}


	/* 删除一个表 */
	public void DeleteTable()
	{
		mSQLiteDatabase.execSQL("DROP TABLE " + TABLE_NAME);
		this.finish();
	}


	/* 更新一条数据 */
	public void UpData()
	{
		ContentValues cv = new ContentValues();
		cv.put(TABLE_NUM, miCount);
		cv.put(TABLE_DATA, "修改后的数据" + miCount);

		/* 更新数据 */
		mSQLiteDatabase.update(TABLE_NAME, cv, TABLE_NUM + "=" + Integer.toString(miCount - 1), null);

		UpdataAdapter();
	}


	/* 向表中添加一条数据 */
	public void AddData()
	{
		ContentValues cv = new ContentValues();
		cv.put(TABLE_NUM, miCount);
		cv.put(TABLE_DATA, "测试数据库数据" + miCount);
		/* 插入数据 */
		mSQLiteDatabase.insert(TABLE_NAME, null, cv);
		miCount++;
		UpdataAdapter();
	}
   

	/* 从表中删除指定的一条数据 */
	public void DeleteData()
	{

		/* 删除数据 */
		mSQLiteDatabase.execSQL("DELETE FROM " + TABLE_NAME + " WHERE _id=" + Integer.toString(miCount));

		miCount--;
		if (miCount < 0)
		{
			miCount = 0;
		}
		UpdataAdapter();
	}


	/* 更行试图显示 */
	public void UpdataAdapter()
	{
		// 获取数据库Phones的Cursor
		Cursor cur = mSQLiteDatabase.query(TABLE_NAME, new String[] { TABLE_ID, TABLE_NUM, TABLE_DATA }, null, null, null, null, null);

		miCount = cur.getCount();
		if (cur != null && cur.getCount() >= 0)
		{
			// ListAdapter是ListView和后台数据的桥梁
			ListAdapter adapter = new SimpleCursorAdapter(this,
			// 定义List中每一行的显示模板
				// 表示每一行包含两个数据项
				android.R.layout.simple_list_item_2,
				// 数据库的Cursor对象
				cur,
				// 从数据库的TABLE_NUM和TABLE_DATA两列中取数据
				new String[] { TABLE_NUM, TABLE_DATA },
				// 与NAME和NUMBER对应的Views
				new int[] { android.R.id.text1, android.R.id.text2 });

			/* 将adapter添加到m_ListView中 */
			m_ListView.setAdapter(adapter);
		}
	}


	/* 按键事件处理 */
	public boolean onKeyDown(int keyCode, KeyEvent event)
	{
		if (keyCode == KeyEvent.KEYCODE_BACK)
		{
			/* 退出时,不要忘记关闭 */
			mSQLiteDatabase.close();
			this.finish();
			return true;
		}
		return super.onKeyDown(keyCode, event);
	}
}


   还有一点就是大家有必要知道一下数据库的存储地址。来张截图吧。



   源码请大家参考附件
  • 大小: 30.5 KB
  • 大小: 39.6 KB
分享到:
评论
3 楼 christy_fang 2010-12-07  
byandby 写道
    很是汗了。。呵呵 

汗什么呀,哼!~
2 楼 byandby 2010-12-07  
    很是汗了。。呵呵 
1 楼 christy_fang 2010-12-07  
哎呀,你这跟我写的区别还是蛮大的啊
1、我是用main.xml布局,你是在Activity中添加控件和布局,是我的习惯还是怎么呢,个人觉得一般情况下(就是比较简单的一些布局)在布局文件中布局似乎要更好、更方便一些,就像是在一张空白的纸上画画一样
2、我对数据库的部分操作是通过一个继承了SQLiteOpenHelper对象的Activity类来进行的,估计是我看的视频暂时只讲到了这种方式哈

学习了,又多学习了另外一种方式,呵呵 !

相关推荐

    Sqlite数据库基本操作示例

    本示例将详细介绍如何在Android环境中进行SQLite数据库的基本操作。 一、创建SQLite数据库 在Android中,我们通常通过`SQLiteOpenHelper`类来创建和管理SQLite数据库。首先,我们需要创建一个继承自`...

    Android SQLite数据库操作Demo

    这个"Android SQLite数据库操作Demo"项目将帮助你理解如何在实际应用中与SQLite数据库进行交互,包括基本的CRUD操作以及事务处理,这些都是Android开发中不可或缺的部分。通过实践这个Demo,你可以深入理解SQLite...

    android基本SQLite数据库操作的增删改查demo

    综上所述,"android基本SQLite数据库操作的增删改查demo"涵盖了Android应用中SQLite数据库的基本操作,这对于构建需要本地数据存储功能的应用至关重要。开发者不仅需要理解SQL语句,还要熟悉Android的数据库API和UI...

    android sqlite数据库 demo code

    在"android sqlite数据库 demo code"中,我们可以看到一个简单的Android应用示例,该示例演示了如何使用SQLite数据库进行数据的增删改查操作。下面将详细介绍这些关键知识点: 1. **SQLiteOpenHelper**: 这是...

    android sqlite数据库 增加、删除、修改,查询系统功能实现

    以上就是Android中SQLite数据库的基本操作。在实际应用中,通常会封装成DAO(Data Access Object)类,提供更方便的操作接口。SQLiteDemo这个压缩包文件很可能包含了实现这些功能的完整示例代码,可以作为参考学习,...

    Android SQLite数据库操作demo

    本篇将基于一个名为"Android SQLite数据库操作demo"的示例项目,探讨如何在Android中进行SQLite数据库的相关操作。原作者的博客地址为http://blog.csdn.net/liuhe688/article/details/6715983。 首先,我们来看一下...

    Android数据库SQLite基本操作工程

    - 虽然不是SQLite的基本操作,但`ContentProvider`是Android中访问数据的标准接口,它可以封装SQLite数据库操作,使得其他应用程序能够安全地共享数据。 10. **LiveData与Room库** - Android Architecture ...

    android SQLite数据库基础使用例子

    在Android开发中,SQLite是一个非常重要的组成部分,它是一个轻量级的、开源的、嵌入式的...对于初学者来说,这是一个很好的学习资源,通过分析和运行这个示例,你可以更深入地理解Android中SQLite数据库的基本使用。

    SQLite数据库操作demo

    这个"SQLite数据库操作demo"旨在提供一个基础的示例,帮助初学者了解如何在Android环境中进行SQLite数据库的创建、查询、更新和删除等基本操作。 首先,Android中的SQLite数据库操作通常涉及以下步骤: 1. **创建...

    Android数据库SQLite详解

    本文将深入探讨SQLite在Android中的使用,包括基本概念、数据库操作以及实际应用示例。 ### 1. SQLite基本概念 - **数据库**: 数据库是存储和组织数据的结构化系统,SQLite在Android中表现为一个数据库文件,扩展...

    android sqlite数据库实例

    本实例主要探讨如何在Android应用中进行SQLite数据库的增、删、查、改(CRUD)操作。 首先,我们需要创建一个SQLite数据库。在Android中,我们通过继承`SQLiteOpenHelper`类来实现。`SQLiteOpenHelper`提供了创建、...

    android 的sqlite数据库加密实现

    本篇文章将深入探讨如何在Android中实现SQLite数据库的加密。 一、SQLite加密的必要性 1. 数据隐私:在移动设备上,用户数据可能包含个人隐私,如登录凭据、通讯录等,加密可以防止数据泄露。 2. 应用安全:防止...

    android Sqlite数据库操作demo

    这个"android Sqlite数据库操作demo"涵盖了SQLite的基本操作,是学习和理解Android应用中数据库管理的一个好起点。通过运行和分析这个示例,开发者可以更好地理解和实践SQLite在Android开发中的应用。

    安卓SQLite数据库相关-安卓Androidsqlite万能数据库.rar

    标题"安卓SQLite数据库相关-安卓Androidsqlite万能数据库.rar"暗示了这个压缩包包含了一系列与Android平台上SQLite数据库使用相关的资源,可能是源代码、教程、示例或者其他工具。由于描述中提到“太多无法一一验证...

    Android sqlite数据库操作通用框架AHibernate

    **Android SQLite 数据库操作通用框架 AHibernate** 在 Android 开发中,SQLite 是一个重要的本地数据存储解决方案,它是一个轻量级的数据库系统,适合于移动设备。为了简化对 SQLite 数据库的操作,开发者通常会...

    android sqlite数据库框架

    本案例围绕"android sqlite数据库框架"展开,旨在通过Java注解和反射机制简化数据库的日常操作,提升开发效率。 首先,SQLite在Android中的应用主要是通过SQLiteOpenHelper类来实现的,这个类是Android提供的一个...

    arcgis for android 读取加载sqlite数据库.rar

    本教程将探讨如何在ArcGIS for Android环境中利用SQLite数据库进行数据存储和读取。 1. **SQLite数据库介绍**: SQLite是一个自包含、无服务器、零配置、事务性的SQL数据库引擎,无需额外的数据库管理器进程,直接...

    android SQLite数据库的操作

    本示例将详细介绍如何在Android应用中进行SQLite数据库的基本操作,包括创建数据库、删除数据库、插入数据以及查询数据。 1. **创建数据库** 在Android中,我们通常通过继承`SQLiteOpenHelper`类来创建和管理...

Global site tag (gtag.js) - Google Analytics