Java 跟踪准备好的语句Sqlite的行

Java 跟踪准备好的语句Sqlite的行,java,android,android-sqlite,Java,Android,Android Sqlite,我已经创建了一个准备好的语句来获取我的track_id所在的行。由于我是一个初学者,我很难理解如何从整行中逐个获取值 我的代码是: public SQLiteStatement retrieveData(){ SQLiteDatabase db = this.getWritableDatabase(); SQLiteStatement stmt = db.compileStatement("Select * from tracking where track_i

我已经创建了一个准备好的语句来获取我的track_id所在的行。由于我是一个初学者,我很难理解如何从整行中逐个获取值 我的代码是:

 public SQLiteStatement retrieveData(){
        SQLiteDatabase db = this.getWritableDatabase();
        SQLiteStatement stmt = db.compileStatement("Select * from tracking where track_id= ?");
        return stmt;

就像在SQL数据库中一样,我们使用ResultSet result=statement.executeQuery();如何将statement.execute()存储在变量中以获取行详细信息?

简而言之,您不使用SQLiteStatement,它只用于/(能够)返回单行中的一列,如下所示:-

表示可以对数据库执行的语句。这个 语句不能返回多行或多列,只能返回单个值(1) x 1)支持结果集。

相反,您将使用:-

SQLiteDatabase db = this.getWritableDatabase();
Cursor csr = db.query("tracking",null /* all columns aka */","track_id=?",new String[]{track_data.getText().toString()},null,null,null);
while (csr.moveToNext()) {
    // and for each column value you wanted
    my_value = csr.get??????(csr.getColumnIndex(the_column_name_as_a_string)); 
    // e.g. another my_other_value = csr.get??????(csr.getColumnIndex(the_column_name_as_a_string));
}
  • ??????表示许多方法,例如getInt、getLong
或者,您也可以使用rawQuery方法,而不是使用便利方法query,例如:

Cursor csr = db.rawQuery("Select * from tracking where track_id= ?",new String[]{track_data.getText().toString()});
Cursor csr = db.rawQuery("Select * from tracking where track_id= ?",new String[]{track_data.getText().toString()});