- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
显然我不理解 Android 中 ContentValues 的概念。由于 ContentValues 是一个集合,如何保证像 database.insert(TABLE, null, contentValues); 这样的插入语句以正确的顺序获取 contentValues 的所有值?
假设 TABLE 有 3 个字符串列。如果我写以下...
contentValues.put("col1", valueCol1);
contentValues.put("col2", valueCol2);
contentValues.put("col3", valueCol3);
...不能保证 database.insert 会按此顺序插入值,还是我理解有误?
使用 database.insert 而不是 db.execSQL 有什么好处(除了在 Android 中更好的 View 处理)?
最佳答案
since ContentValues is a set?
ContentValues
更接近于 Map
.它是键值存储,以字符串为键。
it is not guaranteed that database.insert inserts the values in this order, or did I understand something wrong?
安INSERT
将同时插入这些值,方式 INSERT
语句在过去几十年中一直适用于任何符合 SQL 的数据库。
使用您的示例,如果我们要 insert()
那ContentValues
到名为 foo
的表中,结果将等同于以下内容:
db.execSQL("INSERT INTO foo (col3, col1, col2) VALUES (?, ?, ?)", args);
哪里args
是 String[]
由 valueCol3
组成, valueCol1
, 和 valueCol2
, 分别。
What are the benefits in using database.insert instead of db.execSQL at all
它涉及的输入更少,您不必将您的值转换为 String
数组。
(except better View handling in Android)?
恕我直言,insert()
在 SQLiteDatabase
不提供比execSQL()
“更好的 View 处理”在 SQLiteDatabase
,尽管您可能正在想一些我遗漏的东西。
关于安卓内容值 : Are values misordered at insert?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16499277/
我是一名优秀的程序员,十分优秀!