如何在Sqlite java android中检索select查询的结果?

如何在Sqlite java android中检索select查询的结果?,java,android,sqlite,android-sqlite,Java,Android,Sqlite,Android Sqlite,我希望在变量中检索请求的结果,以便能够检查身份验证是否正确。在简单sql中,它通过一个Resultset来实现这一点,但我知道在Sqlite中必须使用游标。但我没有结果。以下是我已经尝试过的两个例子: public boolean checkAuthentication(字符串登录,字符串密码){ 布尔检查=假; SQLiteDatabase db=dbManager.getWritableDatabase(); SQLiteStatement=db.compileStatement(“从Vis

我希望在变量中检索请求的结果,以便能够检查身份验证是否正确。在简单sql中,它通过一个Resultset来实现这一点,但我知道在Sqlite中必须使用游标。但我没有结果。以下是我已经尝试过的两个例子:

public boolean checkAuthentication(字符串登录,字符串密码){
布尔检查=假;
SQLiteDatabase db=dbManager.getWritableDatabase();
SQLiteStatement=db.compileStatement(“从Visiteur中选择*,其中visu login=?和visu mdp=?”;
statement.bindString(1,login);
语句.bindString(2,密码);
//语句。execute();
退货检查;
}
公共布尔值checkAuthentication2(字符串登录,字符串密码){
布尔检查=假;
字符串log=null;
字符串传递=null;
String sql=“从Visiteur中选择*,其中visu login=?和visu mdp=?”;
SQLiteStatement=db.compileStatement(sql);
statement.bindString(1,login);
语句.bindString(2,密码);
Cursor=db.rawQuery(sql,null);
while(cursor.moveToNext()){
log=cursor.getString(cursor.getColumnIndex(“vis_登录”);
pass=cursor.getString(cursor.getColumnIndex(“vis_mdp”);
Log.d(“WHILE”,Log);
}
cursor.close();
语句。close();
if(log!=null&&pass!=null){
检查=正确;
}
退货检查;
}
感谢您的回复。

使用
rawQuery()
方法获取一个
光标,您无需在其上迭代。
只需检查是否返回了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;
}

您仍然需要一个ResultSet来使用.next()进行迭代。但是我不能在Sqlite中使用ResultSet。但是如果我需要存储这些值​​要重用它们,我将按照我的第二个示例进行操作?如果您指的是login和password的值,那么您已经拥有了它们,因为您将它们传递给了方法。很抱歉,我说错了。如果我想创建一个
,例如,从vis_id=3的访问者中选择vis_name。如果我想获得显示它的名称,那么您需要另一个光标:
cursor c=rawQuery(“从visitor中选择visu name,其中visu id=3”,null);字符串名称=”;如果(c.moveToFirst())name=c.getString(0)