安卓 SQLite : Which query ("query" or "rawQuery") is faster?

标签 android database

我正在开发一个 android 数据库应用程序。我只想知道哪些代码执行得更快,它们之间有什么区别?

查询 - 1 =

db.rawQuery("select * from user_table where user_id =" + userId, null);

查询 - 2 =

db.query(USER_TABLE_NAME, ALL_COLUMNS, "user_id = " + userId, null, null, null, null);

最佳答案

使用查询。

Android 预编译查询和使用太多不同的原始查询可能会导致性能问题。

仅在绝对需要时使用 rawQuery。

此外,您的两个示例都存在 SQL 注入(inject)的主要安全问题。

您应该清理 userId。

最明显的做法是让 Android 使用:

db.query(USER_TABLE_NAME, ALL_COLUMNS, "user_id = ?", new String[] {userId}, null, null, null);

关于安卓 SQLite : Which query ("query" or "rawQuery") is faster?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8830753/

相关文章:

database - 存储在 Oracle 数据库中的未知长度文本字段的数据类型

mysql - 如果没有事务,wordpress 是如何工作的呢?

android - 如何区分手势和点击?

php - Yii:Framework - 从 $_POST 中查找具有多个相关类别的表

android - 在 sqlite 3 和 Android 上工作

java - Android 导航组件侧面导航仅在特定 fragment 上

database - 在 postgresql 中以 block 的形式检索数据

sql - *= 是哪个比较运算符

android: Activity需要最小化或者隐藏,如何让它保持存活

android - 尝试从 Firestore 加载时应用程序关闭