你好Stackoverflowers!先進先出(FIFO)命令從sqlite數據庫拉動Android
我創建了一個簡單的sqlite數據庫就像這樣。
//event table name
private static final String TABLE_EVENTS = "events";
//event table columns names
private static final String KEY_ID = "id";
private static final String KEY_EVENT = "event";
@Override
public void onCreate(SQLiteDatabase db)
{
//String to define our database
String CREATE_EVENT_TABLE = "CREATE TABLE " + TABLE_EVENTS + "("
+ KEY_ID + " INTEGER PRIMARY KEY," + KEY_EVENT + " TEXT" + ")";
//create our database
db.execSQL(CREATE_EVENT_TABLE);
}
我的理解是一個ID列和事件列的表。
在事件列我存儲一個JSONObject轉換爲一個字符串,我想從FIFO(先進先出)順序表中檢索,以便如果我的應用程序崩潰,我可以發送我有JSONObjects在下次打開應用時存儲。
我可以使用插入到表沒有問題:
public void addEvent(JSONObject event)
{
//get our database so we can add to it
SQLiteDatabase db = this.getWritableDatabase();
//define content values to store our values
ContentValues values = new ContentValues();
//add our event to the ContentValues
values.put(KEY_EVENT, event.toString());
//insert a row
db.insert(TABLE_EVENTS, null, values);
//close the database connection
db.close();
}
我無法查詢特定的行或事件,並得到來自數據庫的事件,以及一個好的方法來跟蹤事件被插入的順序,以便我可以按FIFO順序將它們取出。
示例代碼特別有用,因爲當我嘗試查詢時,出現語法錯誤,並且不太熟悉SQLite。
任何幫助非常感謝!感謝您的時間。
同樣,將您的密鑰命名爲_id將有助於部分Android自動佈局。 – Pyrodante
這正是我需要的!唯一的問題是,當我將其設置爲光標像這樣: \t \t光標光標= db.query(TABLE_EVENTS,新的String [] {KEY_EVENT},NULL,NULL,NULL,NULL,KEY_ID + 「ASC」); 返回查詢返回:[email protected]當我打電話cursor.toString(),而不是字符串...有什麼建議? – VinC
得到你需要做的事件cursor.getString(0)'0'意味着你在查詢時設置的位置字符串數組中的元素,所以在你的情況下它會是'0',因爲你只有在陣列 – tyczj