Java 在Android应用程序上使用DBHelper(SQLite)的好做法是什么
我有一个DatabaseHelper类,它扩展了SQLiteOpenHelper,使用DBHelper执行数据提取的好做法是什么 在我的DatabaseHelper类中,我有一个方法可以帮助我检索查询结果,如“Select*FROM…”。结果将被许多其他类使用 例如:Java 在Android应用程序上使用DBHelper(SQLite)的好做法是什么,java,android,database,sqlite,Java,Android,Database,Sqlite,我有一个DatabaseHelper类,它扩展了SQLiteOpenHelper,使用DBHelper执行数据提取的好做法是什么 在我的DatabaseHelper类中,我有一个方法可以帮助我检索查询结果,如“Select*FROM…”。结果将被许多其他类使用 例如: Cursor getAllWhitelist(){ SQLite Database db=this.getWritableDatabase(); Cursor cur = db.rawQuery("Select
Cursor getAllWhitelist(){
SQLite Database db=this.getWritableDatabase();
Cursor cur = db.rawQuery("Select * from WhiteList");
return cur;
}
我应该在这个阶段返回游标吗?推荐吗?或者我应该返回ArrayList之类的东西
你们是怎么做到的?最好的做法是创建一个结果列表并关闭光标和数据库,以尽量减少连接时间。否则,由于某些限制,您可以关闭连接。这对结果列表不利。我使用的是,将值存储在某个对象或对象的某个数组列表中,然后返回该值
参考此
感谢@Austin Mahoney,他告诉我们,如果我们使用
startManagingCursor
,我们可以返回游标。此方法允许“活动”根据“活动”的生命周期为您管理给定游标的生命周期。如果您需要将游标用于ListView适配器,是否会出现例外情况?谷歌的例子演示了如何使用游标来实现这一点。问题是,游标不必连接到数据库。Cursor是一个通用接口,用于从任何内容提供商获取一些数据。@Thomas您愿意分享该示例的一个片段吗?可以在Google的一个教程中看到该示例,请参阅fillData()函数。它们返回项目的游标,对其进行管理,然后将其提供给SimpleCursorAdaptor。@Vladimir您假设结果列表很小,如果不是这样,则将浪费资源将整个列表读取到内存中。返回游标很好,您只需确保添加一个startManagingCursor(游标)
将光标传回活动后,立即调用该活动。如果要在SimpleCorsorAdapter
中使用光标,则需要一个未关闭的光标。感谢@Austin Mahoney提供此信息。我已经编辑了我的答案。