gpt4 book ai didi

java - 如何在 Sqlite java android 中检索选择查询的结果?

转载 作者:行者123 更新时间:2023-12-01 18:12:45 26 4
gpt4 key购买 nike

我希望在变量中检索请求的结果,以便能够检查身份验证是否正确。在简单的 sql 中,它使用结果集来完成此操作,但我知道在 Sqlite 中你必须使用游标。但我无法得到结果。以下是我已经尝试过的两个示例:

    public boolean checkAuthentication(String login, String password){

boolean check = false;

SQLiteDatabase db = dbManager.getWritableDatabase();
SQLiteStatement statement = db.compileStatement("SELECT * from Visiteur WHERE vis_login = ? and vis_mdp = ?");
statement.bindString(1, login);
statement.bindString(2, password);
//statement.execute();
return check;

}

public boolean checkAuthentication2(String login, String password){

boolean check = false;
String log = null;
String pass = null;

String sql = "SELECT * from Visiteur WHERE vis_login = ? and vis_mdp = ?";
SQLiteStatement statement = db.compileStatement(sql);
statement.bindString(1, login);
statement.bindString(2, password);

Cursor cursor = db.rawQuery(sql, null);

while(cursor.moveToNext()){
log = cursor.getString(cursor.getColumnIndex("vis_login"));
pass = cursor.getString(cursor.getColumnIndex("vis_mdp"));
Log.d("WHILE", log);
}
cursor.close();
statement.close();

if(log != null && pass != null){
check = true;
}


return check;

}

感谢您的回复。

最佳答案

使用 rawQuery() 方法获取无需迭代的 Cursor
只需检查是否返回 1 行,因为这是您想知道的:是否存在具有特定登录名密码的用户:

public boolean checkAuthentication(String login, String password){
boolean check = false;
String sql = "SELECT * from Visiteur WHERE vis_login = ? and vis_mdp = ?";
SQLiteDatabase db = dbManager.getWritableDatabase();
Cursor cursor = db.rawQuery(sql, new String[] {login, password});
check = cursor.moveToFirst();
cursor.close();
db.close();
return check;
}

关于java - 如何在 Sqlite java android 中检索选择查询的结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60435848/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com