SQLite的使用

1. SQLiteDatabase  (对 SQLite数据库增、删、改、查的操作)

  常用方法

 

   1execSQL(String  sql);

   2execSQL(String sql, String[] args);

 

示例:删除 person表中personId1的记录:

  SQLiteDatabase db=this.getWritableDatabase();

      db.execSQL(“delete from  person where personId=?”,new

  String[]{“1”});

   db.execSQL(“delete from  person where personId=1”);

  提示:this SQLiteOpenHelper类的实例,该类稍后介绍。

 

  3long insert(TABLE_NAME, String nullColumnHack, ContentValues   

 

contentValues);

  作用:添加记录。

  参数-TABLE_NAME:表名。

  参数-nullColumnHack:若插入的数据是空行,则本参数必须设置为 null

  参数-contentValuesMap 类型的数据,每组键-值对代表一列及其该列的数据

 

4int delete(TABLE_NAME, String  where, String[]  whereValue);

作用:删除记录。

参数-TABLE_NAME:表名。

参数-where:删除的条件,相当于 SQL语句中的where部分的 SQL命令。

参数-whereValue:符合参数 where的数据。该值是 String[]类型的数组。

示例:删除当前数据库中表peson中,字段 personId值为1的行,代码如下:

delete(“person”,”personId=?”,newString[]{“1”});

5int update(TABLE_NAME, contentValues,String  where, String[] whereValue) ;

作用:更新记录。

参数-TABLE_NAME:表名。

参数-contentValuesMap 类型的数据,每组键-值对代表一列及其该列的数据。可

存放多个键-值对数据,代表需要更新的数据。

 

参数-where:更新的条件,相当于 SQL语句中的where部分的 SQL命令。

参数-whereValue:符合参数 where的数据。该值是 String[]类型的数组。

示例:更新当前数据库的person表中,personId1的记录,代码如下:

ContentValues  values=new ContentValues();//创建可存操作的键-值对的对

values.put(“name”,”李四”);//存放姓名数据

values.put(“phone”,”13315577889”);//存放电话数据

//实例化SQLiteDatabase对象

SQLiteDatabase db=this.getWritableDatabase();

db.update(“person” ,values,”personId=?”new String[]{“1”);//更新

数据

6Cursor rawQuery(String sql,String[]selectionArgs);

作用:执行带占位符的 SQL查询,返回的结果集存放在 Cursor对象中。

参数-sql:查询的 SQL命令。

参数-selectionArgs:查询的条件数据。

提示:

(1)Cursor类稍后介绍。

(2) sql中没有占位符,则第二个参数设置为 null

(3) 对数据表进行变更操作时,使用execSQL,对数据表进行查询时,使用rawQuery

方法。

7 Cursorquery(table,projection,selection,selectionArgs,groupby,having,orderby)

   作用:执行带占位符的 SQL查询,返回的结果集存放在 Cursor对象中。

cursor : 返回值类型,返回查询结果游标对象。

        table : String ,要查询的表名。

        projection : String[] ,要查询的列名,如果为 null,则查询所有列。

        selection : String,查询条件。

        selectionArgs:String[]selection中的?补值的数组。

        groupby : String,分组列的列名。

        having:String,分组在查询的条件。

        orderby:String 排序列的列名。

8Context.openOrCreateDatabase(Stringdbname,int mode);

 作用:打开数据库,若数据库未创建则创建数据库。

 参数-dbname:数据库文件名。

 参数-mode:访问权限,有以下常量选择:

  1MODE_PRIVATE:不允许其它应用程序访问本数据库。

  2MODE_WORLD_READABLE:允许其它应用程序读本数据库。

  3MODE_WORLD_WRITEABLE:允许其它应用程序写本数据库。

  4MODE_APPEND:若数据库已存在,则允向数据库中许添加数据。

 

()ContentValues

1.概述

 ContentValues类包装了HashMap类,该类用于存取键-值对的数据,每个键-值对数

据表示一列的列名和该列的数据。

2.常用方法

1ContentValues();

 作用:无参构造方法,创建一个内部成员变量为 HashMap<String,Object>的对象。该

成员变量名为 mValues

 示例:ContentValues values=new ContentValues();

2void put(String key,Object value);

 作用:向成员变量 mValues中存放一个键-值对数据。

 提示:value可以是 Java的所有基本数据类型、数组、对象的类型。

3Object get(String key);

 作用:获取键名 key对应的值。

4XXX getAsXXX(String key);

 作用:返回 XXX类型的值。

 提示:XXX可以是所有基本类型的包装类,如 Integer,还有AsByteArray(字节数组

类型)。

()SQLiteOpenHelper

1.概述

 SQLiteOpenHelper类是Android提供的用于操作 SQLite数据库的工具类,该工具类能

方便地创建数据库、表,以及管理数据库版本。

2.常用方法

1 synchronized SQLiteDatabasegetReadableDatabase();

作用:以读写的方式打开数据库对应的 SQLiteDatabase类的对象。

提示:synchronized关键字定义该方法为线程同步。

2 synchronized SQLiteDatabasegetWriteableDatabase();

作用:以写的方式创建或打开数据库对应的 SQLiteDatabase类的对象。

3 abstract onCreate(SQLiteDatabase db);

作用:首次创建数据库时,回调本方法。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章