2019-01-07 [SQLite]

SQLiteDatabase类  

  android.database.sqlite.SQLiteDatabase类的实例都代表了一个SQLite数据库的操作,通过SQLiteDatabase类可以执行SQL语句,以完成对数据表的增加、修改、删除、查询等操作,在此类之中定义了基本的数据库执行SQL语句的操作方法以及一些操作的模式常量。

常用操作方法

ContentValues 类

  ContentValues类包装了HashMap类,该类用于存取键值对的数据,每个键值对表示一列的列名和该列的数据。

          常用方法

1、  ContentValues();

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

2、  void put(String key,Object value);

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

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

3、  Object get(String key);

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

4、  XXX getAsXXX(String key);

         作用:返回XXX类型的值

         提示:XXX可以是所有基本类型的包装类


SQLiteDatabase中query、insert、update、delete方法参数说明

SQLiteDataBase对象的query()接口:

publicCursorquery(Stringtable,String[]columns,Stringselection,String[]selectionArgs,StringgroupBy,Stringhaving,StringorderBy,Stringlimit)

Query the given table, returning aCursorover the result set.

Parameters

tableThe table name to compile the query against.(要查询的表名.)

columnsA list of which columns to return. Passing null will return all columns, which is discouraged to prevent reading data from storage that isn't going to be used.(想要显示的列,若为空则返回所有列,不建议设置为空,如果不是返回所有列)

selectionA filter declaring which rows to return, formatted as an SQL WHERE clause (excluding the WHERE itself). Passing null will return all rows for the given table.(where子句,声明要返回的行的要求,如果为空则返回表的所有行。)

selectionArgsYou may include ?s in selection, which will be replaced by the values from selectionArgs, in order that they appear in the selection. The values will be bound as Strings.(where子句对应的条件值)

groupByA filter declaring how to group rows, formatted as an SQL GROUP BY clause (excluding the GROUP BY itself). Passing null will cause the rows to not be grouped.(分组方式,若为空则不分组.)

havingA filter declare which row groups to include in the cursor, if row grouping is being used, formatted as an SQL HAVING clause (excluding the HAVING itself). Passing null will cause all row groups to be included, and is required when row grouping is not being used.(having条件,若为空则返回全部(不建议))

orderByHow to order the rows, formatted as an SQL ORDER BY clause (excluding the ORDER BY itself). Passing null will use the default sort order, which may be unordered.(排序方式,为空则为默认排序方式)

limitLimits the number of rows returned by the query, formatted as LIMIT clause. Passing null denotes no LIMIT clause.(限制返回的记录的条数,为空则不限制)

Returns

ACursorobject, which is positioned before the first entry. Note thatCursors are not synchronized, see the documentation for more details.

示例:

ContentValues cv =newContentValues();

String[] args = {String.valueOf("a")};

query("user", new String[] {"username","password"},"username=?",args, null,null, null, null);

SQLiteDataBase对象的insert()接口:

public longinsert(Stringtable,StringnullColumnHack,ContentValuesvalues)

Convenience method for inserting a row into the database.

Parameters

tablethe table to insert the row into(要插入数据的表的名称)

nullColumnHackoptional; may benull. SQL doesn't allow inserting a completely empty row without naming at least one column name. If your providedvaluesis empty, no column names are known and an empty row can't be inserted. If not set to null, thenullColumnHackparameter provides the name of nullable column name to explicitly insert a NULL into in the case where yourvaluesis empty.(当values参数为空或者里面没有内容的时候,我们insert是会失败的(底层数据库不允许插入一个空行),为了防止这种情况,我们要在这里指定一个 列名,到时候如果发现将要插入的行为空行时,就会将你指定的这个列名的值设为null,然后再向数据库中插入。)

valuesthis map contains the initial column values for the row. The keys should be the column names and the values the column values(一个ContentValues对象,类似一个map.通过键值对的形式存储值。)

Returns

the row ID of the newly inserted row, or -1 if an error occurred

示例:

ContentValues cv =newContentValues();

cv.put("username","a");

cv.put("password","b");

insert("user",null, cv);

SQLiteDataBase对象的update()接口:

public intupdate(Stringtable,ContentValuesvalues,StringwhereClause,String[]whereArgs)

Convenience method for updating rows in the database.

Parameters

tablethe table to update in(要更新的表名)

valuesa map from column names to new column values. null is a valid value that will be translated to NULL.(一个ContentValues对象,类似一个map.通过键值对的形式存储值。)

whereClause

whereArgs

the optional WHERE clause to apply when updating. Passing null will update all rows.(可选的where语句)

the group of args to deal with(whereClause语句中表达式的?占位参数列表

)

Returns

the number of rows affected

ContentValues cv =newContentValues();

cv.put("username","c");

cv.put("password","d");

String[] args = {String.valueOf("a")};

update("user", cv,"username=?",args)

SQLiteDataBase对象的delete()接口:

public intdelete(Stringtable,StringwhereClause,String[]whereArgs)

Convenience method for deleting rows in the database.

Parameters

tablethe table to delete from

whereClause

whereArgs

the optional WHERE clause to apply when deleting. Passing null will delete all rows.(可选的where语句)

the optional WHERE clause to apply when updating. Passing null will update all rows.(whereClause语句中表达式的?占位参数列表)

Returns

the number of rows affected if a whereClause is passed in, 0 otherwise. To remove all rows and get a count pass "1" as the whereClause.

示例:

ContentValues cv =newContentValues();

String[] args = {String.valueOf("c")};

delete("user","username=?", args);

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 218,204评论 6 506
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,091评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,548评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,657评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,689评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,554评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,302评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,216评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,661评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,851评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,977评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,697评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,306评论 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,898评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,019评论 1 270
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,138评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,927评论 2 355

推荐阅读更多精彩内容

  • pyspark.sql模块 模块上下文 Spark SQL和DataFrames的重要类: pyspark.sql...
    mpro阅读 9,456评论 0 13
  • 武汉特产周黑鸭,故乡依旧皮皮虾。 尝尽世间千百味,最香最甜在我家。
    田田懒得跑阅读 117评论 0 0
  • 给高中的妹妹,或者给高中的自己。 在高中叛逆期特别不明白我为什么要过天天考试的日子,虽说考试为了理想的大学或者工作...
    helen1990_阅读 181评论 0 0
  • 感受:可能由于是这两天才发生的事情,记忆深刻,所以一气呵成,整理起来不费事。很顺畅。就是图有点少了。 发现:画下来...
    思维导图实践派_王婵阅读 196评论 2 1
  • 国庆那天的下午,我和妈妈雨与姐姐还有妈妈的朋友去游玩运城著名的旅游景点――舜帝陵。 车子...
    咕咕咕虎阅读 283评论 0 0