2010-11-19 79 views
2

我有一個擴展SQLiteOpenHelper的DatabaseHelper類,使用DBHelper執行數據提取的最佳做法是什麼?在Android應用程序上使用DBHelper(SQLite)的最佳做法

在我的DatabaseHelper類中,我有一個方法來幫助我檢索查詢的結果,如「Select * FROM .....」。結果將被許多其他類使用。

實施例:

Cursor getAllWhitelist(){ 
    SQLite Database db=this.getWritableDatabase(); 
    Cursor cur = db.rawQuery("Select * from WhiteList"); 
    return cur; 
} 

我應該在這個階段返回一個光標?是否推薦?或者我應該返回一個ArrayList或類似的東西?

你們是怎麼做到的?

回答

1

我使用的是什麼,存儲的值在某個對象或對象的某些ArrayList和返回
請參閱本link

感謝@Austyn馬奧尼,因爲他告訴我們可以返回遊標,如果我們使用startManagingCursor 。此方法允許活動根據活動的生命週期來管理給定遊標的生命週期。

+0

返回一個遊標就好,你只需要確保在光標傳遞給它的時候在你的activity中添加一個'startManagingCursor(cursor)'調用。如果你想在'SimpleCursorAdapter'中使用它,你將需要一個不關閉的遊標。 – 2011-02-03 18:38:04

+0

感謝@Austyn Mahoney提供的信息。我編輯了我的答案。 – 2011-02-04 04:53:00

0

好的做法是創建一個結果列表並關閉遊標和數據庫以最大限度地減少連接時間。否則,由於某些限制,您可以關閉連接。這對你的結果列表不好。

+0

如果您需要將光標指定給ListView適配器,這是否會有例外情況?谷歌的例子演示如何使用光標。 – Thomas 2010-11-19 14:11:22

+0

事情是光標不需要連接到數據庫。光標是從任何內容提供者獲取一些數據的通用接口。 – 2010-11-19 14:35:22

+0

@Thomas你會關心這個例子的片段嗎? – 2010-11-19 16:54:49

相關問題