插入操作: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。