java - 在 SQLite 数据库中搜索特定字符串 - Android SDK
问题描述
我在 Android SDK 中使用 SQLite 数据库,我知道这是一个非常简单的问题,但我有以下功能。我正在尝试搜索用户名是否在 SQL 数据库中,但我想不出我将如何构造查询。
如果字符串“user”在表“ACCOUNT_TABLE”中,那么搜索的正确方法是什么
public boolean isUser(String user){
SQLiteDatabase db = this.getReadableDatabase();
String queryString = "SELECT " + COLUMN_USERNAME + " FROM " + ACCOUNT_TABLE + " WHERE " (???);
db.close();
/*if(found in database)
return true;
else
return false;*/
}
解决方案
正确的方法是使用rawQuery()
方法,该方法需要 2 个参数:
- 带有您要传递的参数的占位符的 sql
SELECT
语句?
- 包含 sql 语句参数的所有值的
String
数组,按照它们在语句中出现的顺序排列
rawQuery()
返回 aCursor
您可以检查它是否包含任何行,如果包含,则表示user
您搜索的表中存在:
public boolean isUser(String user) {
SQLiteDatabase db = this.getReadableDatabase();
String queryString = "SELECT 1 FROM " + ACCOUNT_TABLE + " WHERE " + COLUMN_USERNAME + " = ?";
Cursor c = db.rawQuery(queryString, new String[]{user});
boolean result = c.getCount() > 0;
c.close();
db.close();
return result;
}
推荐阅读
- django - Using query to match object and then get all objects associated via foreignkey
- python - Floating Object is not iterable
- python - 将数据框列从字符串转换为数字列表
- node.js - 尝试使用 vanilla JS 发送请求 GET 来表达时,响应为空
- javascript - 如何更改在画布上呈现的单个对象的不透明度?
- c++ - 重载的虚拟行为是否定义良好?
- mongodb - Mongodb使用$lookup查找给定_id属于哪个对象(外域是一个数组)
- javascript - 如何使用条件语句检查 javascript 中构造函数的值?
- php - 使用数组中的数据插入多个 MYSQLI
- php - 使用 Spatie\MediaLibrary 上传文件时 Laravel 包错误