我有一個SQLite數據庫,我在SQLite瀏覽器中創建並通過SQLite資產助手庫導出到我的Android應用程序。此數據庫用於只讀任務,不能升級或修改。從Android中以前創建的SQLite數據庫中搜索並檢索特定數據?
現在我想在特定的列中搜索用戶在TextView中輸入的任何數據,以及在數據與某列值匹配的情況下檢索與其他列對應的所有值。
例如:
TABLE FRUITS
_id NAME URL
1 apple R.drawable.apple
2 orange R.drawable.orange
3 kiwi R.drawable.kiwi
由於我的應用程序只允許用戶輸入姓名字段,查詢需要的只是名稱的列進行搜索,並且僅當存在於數據庫中檢索URL值,否則將不會返回。
這裏是我的導入數據庫代碼:
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteQueryBuilder;
import com.readystatesoftware.sqliteasset.SQLiteAssetHelper;
public class MyDatabase extends SQLiteAssetHelper {
private static final String DATABASE_NAME = "fruitManager";
private static final int DATABASE_VERSION = 1;
public MyDatabase(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
public Cursor answerRequest(String request) {
SQLiteDatabase db = getReadableDatabase();
SQLiteQueryBuilder qb = new SQLiteQueryBuilder();
String sqlTables = "FRUITS";
qb.setTables(sqlTables);
String[] sqlSelect = {"0 _id", "NAME", "0 URL"};
Cursor c = qb.query(db, sqlSelect, null, null,
null, null, null);
return c;
}
}
,從這裏我提出的要求:
public class Request {
private Cursor cursor;
private MyDatabase db;
String request;
String url;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_sqlite_asset_helper);
public void onClick(View v) {
request = mEdit.getText().toString().toLowerCase();
db = new MyDatabase(this);
cursor = db.answerRequest(request);
url = cursor.getString(c.getColumnIndex("NAME"));
System.out.println("Your request was: " + request +
" and has this URL: " + url);
}
}
protected void onDestroy() {
super.onDestroy();
cursor.close();
db.close();
}
不過,需要的代碼加載用於做查詢,但我不在這種情況下確切知道如何實現它們(由於導入的數據庫)。提前致謝。
更新:我有點絕望,所以如果你沒有答案,但知道做任務的替代方案(如使用另一個數據庫處理程序而不是SQLite)我會接受你的建議作爲正確的答案。 唯一的限制是:必須是脫機解決方案(訪問數據庫不需要Internet連接)。
這不工作的部分? – Karakuri
@Karakuri這部分:'遊標c = qb.query(db,sqlSelect,null,null,null,null,null);'不是以正確的方式進行查詢,因爲我認爲指令是不完整的。 – Yulz