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

android SQLite编程详解

阅读更多
     SQLite 数据库功能非常强大,使用起来也非常方便,SQLite数据库的一般操作包括:创建数据库、打开数据库、创建表、向表中添加数据、从表中删除数据、修改表中的数据、关闭数据库、删除指定表、删除数据库和查询表中的某条数据。下面我们分别来学习这些基本操作。

  1.创建和打开数据库
  在Android 中创建和打开一个数据库都可以使用openOrCreateDatabase 方法来实现,因为它会自动去检测是否存在这个数据库,如果存在则打开,不过不存在则创建一个数据库;创建成功则返回一个 SQLiteDatabase对象,否则抛出异常FileNotFoundException。下面我们来创建一个名为"Examples_06_05.db"的数据库,并返回一个SQLiteDatabase对象 mSQLiteDatabase。
mSQLiteDatabase = this.openOrCreateDatabase("Example_06_05.db", MODE_PRIVATE, null);


   2.创建表
   一个数据库中可以包含多个表,我们的每一条数据都保存在一个指定的表中,要创建表可以通过execSQL 方法来执行一条SQL语句。execSQL能够执行大部分的SQL语句,下面我们来创建一个名为table1 且包含3个字段的表。 具体代码如下:
String CREATE_TABLE = "CREATE TABLE table1 (_id INTEGER PRIMARY KEY, num INTEGER,  data TEXT)";
mSQLiteDatabase.execSQL(CREATE_TABLE);


    3.向表中添加一条数据
    可以使用insert 方法来添加数据,但是 insert 方法要求把数据都打包到 ContentValues 中, ContentValues 其实就是一个Map, key值是字段名称, Value值是字段的值。通过 ContentValues 的 put 方法就可以把数据放到ContentValues中,然后插入到表中去。具体实现如下:
ContentValues  cv  =  new ContentValues();
cv.put(TABLE_NUM, 1);
cv.put(TABLE_DATA, "测试数据");
mSQLiteDatabase.insert(TABLE_NAME, null, cv);

  //这样同样可以使用execSQL方法来执行一条“插入”的SQL语句,代码如下:
String  INSERT_DATA = "INSERT INTO table1 (_id, num, data) values (1, 1, '通过SQL语句插入')" ;
mSQLiteDatabase.execSQL(INSERT_DATA);


    4.从表中删除数据
     要删除数据可以使用delete 方法,下面我们删除字段 "_id" 等于1的数据,具体代码如下:
mSQLiteDatabase.delete("Examples_06_05.db", " where_id="+0, null);
通过 execSQL方法执行SQL语句删除数据如下:
String  DELETE_DATA = "DELETE FROM table1 WHERE _id=1";
mSQLiteDatabase.execSQL(DELETE_DATA);


    5.修改表中的数据
    如果添加了数据后发现数据有误,这时需要修改这个数据,可以使用updata方法来更新一条数据。下面我们来修改 "num" 值为0的数据,具体代码如下:
ContentValues cv = new ContentValues();
cv.put(TABLE_NUM, 3);
cv.put(TABLE_DATA, "修改后的数据");
mSQLiteDatabase.update("table1" cv, "num " + "=" + Integer.toString(0), null);


    6.关闭数据库
     关闭数据库很重要,也是大家经常容易忘记的。关闭的方法很简单,直接使用SQLiteDatabase 的 close 方法。具体代码如下:
mSQLiteDatabase.close();


    7.删除指定表
    这里我们使用execSQL方法来实现,具体代码如下:
  
 mSQLiteDatabase.execSQL("DROP TABLE table1");


   8.删除数据库
    要删除一个数据库,直接使用deleteDatabase 方法即可,具体代码如下:
    
     this.deleteDatabase("Examples_06_05.db");


    9.查询表中的某条数据
     在Android中查询数据是通过Cursor类来实现的,当我们使用SQLiteDatabase.query()方法时,会得到一个Cursor对象,Cursor指向的就是每一条数据。它提供了很多有关查询的方法,具体方法如下:

    方法                                                                                     说明 
    move                                               以当前的位置为参考,将Cursor移动到指定的位置,成功返回true, 失败返回false

    moveToPosition                                将Cursor移动到指定的位置,成功返回true,失败返回false

    moveToNext                                     将Cursor向前移动一个位置,成功返回true,失败返回false

   moveToLast                                       将Cursor向后移动一个位置,成功返回true,失败返回 false。

   movetoFirst                                       将Cursor移动到第一行,成功返回true,失败返回false

   isBeforeFirst                                      返回Cursor是否指向第一项数据之前

   isAfterLast                                         返回Cursor是否指向最后一项数据之后
  
   isClosed                                            返回Cursor是否关闭

   isFirst                                                返回Cursor是否指向第一项数据

   isLast                                                返回Cursor是否指向最后一项数据

   isNull                                                返回指定位置的值是否为null

   getCount                                           返回总的数据项数

   getInt                                               返回当前行中指定的索引数据

   下面我们就是用Cursor来查询数据库中的数据,具体代码如下:
Cursor cur = mSQLiteDatabase.rawQuery("SELECT * FROM table", null);
if( cur != null ){
   if( cur.moveToFirst() ){
       do{
                  int numColumn = cur.getColumnIndex("num");
                  int num            = cur.getInt(numColumn);
            }while( cur.moveToNext());
      }
 }


最后在提醒大家一句:    使用SQLiteDatabase数据库要及时关闭(close), 否则可能会抛出SQLiteException异常。
分享到:
评论

相关推荐

    Android SQLite详解及示例代码

    在Android中使用SQLite数据库的入门指南,打算分下面几部分与大家一起分享, 1、什么是SQLite 2、Android中使用SQLite 一、什么是SQLite SQLite是一款开源的、轻量级的、嵌入式的、关系型数据库。它在2000年由...

    Android编程之SQLite数据库操作方法详解

    本文实例讲述了Android SQLite数据库操作方法。分享给大家供大家参考,具体如下: SQLite and Android SQLite简介 SQLite是一个非常流行的嵌入式数据库,它支持SQL语言,并且只利用很少的内存就有很好的性能。此外,...

    Android编程操作嵌入式关系型SQLite数据库实例详解

    本文实例分析了Android编程操作嵌入式关系型SQLite数据库的方法。分享给大家供大家参考,具体如下: SQLite特点 1.Android平台中嵌入了一个关系型数据库SQLite,和其他数据库不同的是SQLite存储数据时不区分类型 ...

    Android基础知识详解

    SQLite数据库6.4 103 ContentProvider、ContentResolver 6.5 105 Intent 106 用Intent启动Activity,并在Activity之间传递数据 106 调用其他应用程序中的Activity(打电话、浏览网页、发Email等) 109 接收和发送广播 ...

    android开发揭秘PDF

    6.5.2 SQLite编程详解 6.5.3 SQLiteOpenHelper应用 6.6 数据共享(ContentProviders) 6.7 小结 第7 章多媒体开发 7.1 多媒体开发详解 7.1.1 Open Core 7.1.2 MediaPlayer 7.1.3 MediaRecorder 7.2 播放音乐 7.3 播放...

    《Android应用开发揭秘》附带光盘代码.

     6.5.2 SQLite编程详解  6.5.3 SQLiteOpenHelper应用  6.6 数据共享(ContentProviders)  6.7 小结  第7 章多媒体开发  7.1 多媒体开发详解  7.1.1 Open Core  7.1.2 MediaPlayer  7.1.3 MediaRecorder  ...

    《Android应用开发揭秘》源码

     6.5.2 SQLite编程详解  6.5.3 SQLiteOpenHelper应用  6.6 数据共享(ContentProviders)  6.7 小结  第7 章多媒体开发  7.1 多媒体开发详解  7.1.1 Open Core  7.1.2 MediaPlayer  7.1.3 MediaRecorder  ...

    Android应用开发揭秘pdf高清版

    6.5.2 SQLite编程详解 6.5.3 SQLiteOpenHelper应用 6.6 数据共享(ContentProviders) 6.7 小结 第7 章多媒体开发 7.1 多媒体开发详解 7.1.1 Open Core 7.1.2 MediaPlayer 7.1.3 MediaRecorder 7.2 播放音乐 7.3 播放...

    android开发资料大全

    Android SQLite的实例汇总大全 两分钟彻底让你明白Android Activity生命周期(图文)! Android 图形系统剖析 Android 立体效果图片 NDK动态库的调用 Android 姿态传感器 Android 很酷的图像旋转 Android 添加音频 在...

    Android编程之数据库的创建方法详解

    本文实例讲述了Android编程之数据库的创建方法。分享给大家供大家参考,具体如下: 主java package com.itheima.createdatabase; import android.app.Activity; import android.content.Context; import android....

    android开发入门与实战(下)

    8.4 打造自己的数据库存储——SQLite存储方式 8.4.1 Android中对数据库操作 8.4.2 完整地操作数据库——日记本实例 8.5 我的数据你来用——ContentProvider介绍 8.5.1 初识ContentProvider 8.5.2 使用...

    [14本经典Android开发教程]-3-Android SDK 中文开发文档

    [14本经典Android开发教程]-2-Android开发手册—API函数详解 http://download.csdn.net/detail/cleopard/8374487 剩余11本稍后上传!@或直接从这里寻找@ http://download.csdn.net/user/cleopard/album @更多@ ...

    android开发入门与实战(上)

    8.4 打造自己的数据库存储——SQLite存储方式 8.4.1 Android中对数据库操作 8.4.2 完整地操作数据库——日记本实例 8.5 我的数据你来用——ContentProvider介绍 8.5.1 初识ContentProvider 8.5.2 使用...

    《Google Android开发入门与实战》.pdf

    8.4 打造自己的数据库存储——sqlite存储方式 141 8.4.1 android中对数据库操作 141 8.4.2 完整地操作数据库——日记本实例 147 8.5 我的数据你来用——contentprovider介绍 155 8.5.1 初识...

Global site tag (gtag.js) - Google Analytics