“家庭记账本”软件开发(6)

插入操作:publiclong insert (String table, String nullColumnHack, ContentValues values)

String nullColumnHack :指定空值的字段的名称,当values参数为空或者里面没有内容的时候,我们insert是会失败的(底层数据库不允许插入一个空行),为了防止这种情况,我们要在这里指定一个列名,到时候如果发现将要插入的行为空行时,就会将你指定的这个列名的值设为null,然后再向数据库中插入。

ContentValues values:存放要添加的数据,ContentValues类似于MAP,(它提供了存取数据对应的put(String key,Xxx value)和getAsXxx(String key)方法,  key为字段名称,value为字段值,Xxx指的是各种常用的数据类型,如:String、Integer等),不管第三个参数是否包含数据,执行Insert()方法必然会添加一条记录,

如果 ① values有值并且个数大于0,nullColumnHack可以为null,② values为空,nullColumnHack必须添加一条除主键之外其他字段值(让改字段内容为null)。

1.   SQLiteDatabase db = databaseHelper.getWritableDatabase();  

2.   ContentValues values = new ContentValues();  

3.   values.put("name", "测试数据");  

4.   values.put("age", 4);  

5.   long rowid = db.insert(“person”, null, values);//返回新添记录的行号,与主键id无关  

返回:新插入一行的行ID,或者发生错误的时候返回-1。

posted @ 2020-02-14 19:09  Spongbob  阅读(146)  评论(0编辑  收藏  举报