1.插入数据
插入数据有两种方法:
①SQLiteDatabase的insert(String table,String nullColumnHack,ContentValues values)方法,参数一是表名称,参数二是空列的默认值,参数三是ContentValues类型的一个封装了列名称和列值的Map;
不管第三个参数是否包含数据,执行Insert()方法必然会添加一条记录,如果第三个参数为空,会添加一条除主键之外其他字段值为Null的记录。Insert()方法内部实际上通过构造insert SQL语句完成数据的添加,Insert()方法的第二个参数用于指定空值字段的名称,相信大家对该参数会感到疑惑,该参数的作用是什么?是这样的:如果第三个参数values 为Null或者元素个数为0, 由于Insert()方法要求必须添加一条除了主键之外其它字段为Null值的记录,为了满足SQL语法的需要, insert语句必须给定一个字段名,如:insert into person(name) values(NULL),倘若不给定字段名 , insert语句就成了这样: insert into person() values(),显然这不满足标准SQL的语法。对于字段名,建议使用主键之外的字段,如果使用了INTEGER类型的主键字段,执行类似insert into person(personid) values(NULL)的insert语句后,该主键字段值也不会为NULL。如果第三个参数values 不为Null并且元素的个数大于0 ,可以把第二个参数设置为null。
②编写插入数据的SQL语句,直接调用SQLiteDatabase的execSQL()方法来执行
第一种方法的代码:
- private void insert(SQLiteDatabase db) {
-
-
- ContentValues cValue = new ContentValues();
-
-
- cValue.put("sname","xiaoming");
-
-
- cValue.put("snumber","01005");
-
-
- db.insert("stu_table",null,cValue);
- }
第二种方法的代码:
- private void insert(SQLiteDatabase db){
-
-
- String stu_sql="insert into stu_table(sname,snumber) values('xiaoming','01005')";
-
-
- db.execSQL(sql);
- }
2.删除数据
删除数据也有两种方法:
①调用SQLiteDatabase的delete(String table,String whereClause,String[] whereArgs)方法,参数一是表名称,参数二是删除条件,参数三是删除条件值数组;
②编写删除SQL语句,调用SQLiteDatabase的execSQL()方法来执行删除。
第一种方法的代码:
- private void delete(SQLiteDatabase db) {
-
-
- String whereClause = "_id=?";
-
-
- String[] whereArgs = {String.valueOf(2)};
-
-
- db.delete("stu_table",whereClause,whereArgs);
- }
第二种方法的代码:
- private void delete(SQLiteDatabase db) {
-
-
- String sql = "delete from stu_table where _id = 6";
-
-
- db.execSQL(sql);
- }
3.修改数据
修改数据有两种方法:
①调用SQLiteDatabase的update(String table,ContentValues values,String whereClause, String[] whereArgs)方法。参数是表名称,参数是更行列ContentValues类型的键值对(Map),参数是更新条件(where字句),参数是更新条件数组。
②编写更新的SQL语句,调用SQLiteDatabase的execSQL执行更新。
第一种方法的代码:
- private void update(SQLiteDatabase db) {
-
-
- ContentValues values = new ContentValues();
-
-
- values.put("snumber","101003");
-
-
- String whereClause = "id=?";
-
-
- String[] whereArgs={String.valuesOf(1)};
-
-
- db.update("usertable",values,whereClause,whereArgs);
- }
第二种方法的代码:
- private void update(SQLiteDatabase db){
-
-
- String sql = "update stu_table set snumber = 654321 where id = 1";
-
-
- db.execSQL(sql);
- }
4.查询数据
查询数据的方式太多了,这里不一一赘述,有时间专门整理一次查询