java - 准备语句 Sqlite Android 的跟踪行

标签 java android android-sqlite

我创建了一个Prepared 语句来获取我的track_id 所在的行。由于我是初学者,所以我无法理解如何从整行中一一获取值 我的代码是:

 public SQLiteStatement retrieveData(){
        SQLiteDatabase db = this.getWritableDatabase();
        SQLiteStatement stmt = db.compileStatement("Select * from tracking where track_id= ?");
        return stmt;
SQLiteStatement statement = db.retrieveData();
                statement.bindString(1,track_data.getText().toString());
                statement.execute()

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

最佳答案

简而言之,您不使用SQLiteStatement,它仅用于/(能够)返回单行的单列:-

Represents a statement that can be executed against a database. The statement cannot return multiple rows or columns, but single value (1 x 1) result sets are supported. SQLiteStatement

相反,你可以使用:-

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));
}
  • ??????代表许多方法,例如获取Int、获取Long……
  • 参见Cursor

或者,您也可以使用 rawQuery 方法,例如:

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

关于java - 准备语句 Sqlite Android 的跟踪行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58399879/

相关文章:

java - 写入从 getResourceAsStream() 返回的文件流

java - RESTEasy - 在@GET/@POST 时重用方法参数

android - 使用 RealTimeSocket 丢失数据

android - Hive 生成​​的文件错误 - "control-flow-collections"实验未启用 - Flutter/Dart

android - 如何编写sqlite查询来获取特定数据?

java - 找不到 JButton 变量

java - 如何让 CSVPrinter 引用带空格的字段?

android - Firebase 动态链接随机打开 playstore,但应用已安装

sqlite - session 室数据库迁移失败 : ALTER TABLE to add multiple columns

android - 如何开始使用 SQLCipher for android?