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);
网友评论