Android 将数据从SQLite选择到ListArray中
我已经为此绞尽脑汁好几天了,我就是不能在Android/Java中使用SQLite数据库。我试图从SQLite数据库中选择两行到一个或两个ListArray中,每行一行。我不知道这是好是坏,我只是不知道怎么做。我已经尝试了我发现的各种数据库管理器类,但它们都不能满足我的需要,而且似乎我应该能够完成这个简单的任务,而不需要我在其他数据库管理器中看到的额外功能。有没有简单的方法可以从现有的SQLite数据库中查询一些数据并将其放入ListArray中,这样我就可以使用它了?我意识到我需要将数据库从资产复制到Android数据库路径中,我可以处理这一部分。我还需要能够修改每行的一列。我不需要创建数据库、表或行。我恳求有人帮我解决这个问题,因为我认为我从互联网上抄袭的任何代码都是毫无用处的。 你可以创建一个这样的方法:Android 将数据从SQLite选择到ListArray中,android,sqlite,Android,Sqlite,我已经为此绞尽脑汁好几天了,我就是不能在Android/Java中使用SQLite数据库。我试图从SQLite数据库中选择两行到一个或两个ListArray中,每行一行。我不知道这是好是坏,我只是不知道怎么做。我已经尝试了我发现的各种数据库管理器类,但它们都不能满足我的需要,而且似乎我应该能够完成这个简单的任务,而不需要我在其他数据库管理器中看到的额外功能。有没有简单的方法可以从现有的SQLite数据库中查询一些数据并将其放入ListArray中,这样我就可以使用它了?我意识到我需要将数据库从资
private List<MyItem> getAllItems()
List<MyItem> itemsList = new ArrayList<MyItem>();
Cursor cursor = null;
try {
//get all rows
cursor = mDatabase.query(MY_TABLE, null, null, null, null,
null, null);
if (cursor.moveToFirst()) {
do {
MyItem c = new MyItem();
c.setId(cursor.getInt(ID_COLUMN));
c.setName(cursor.getString(NAME_COLUMN));
itemsList.add(c);
} while (cursor.moveToNext());
}
} catch (SQLiteException e) {
e.printStackTrace();
} finally {
cursor.close();
}
return itemsList;
}
用于打开和关闭数据库。您正试图访问哪些数据/信息?是您自己输入到数据库中的信息,还是您试图从Android数据库中访问信息,如联系人或通话记录?如果您试图访问Android数据库,通常建议您使用ContentProvider。这提供了一个抽象层,允许Android处理数据库事务。这是我自己提供的一个数据库。你能提供一些你使用过的源代码,以便我们可以帮助调试吗?我没有任何我觉得舒服的代码。我找不到任何只是选择一些数据并使用它的例子。我想大多数发布代码的人都认为人们熟悉如何使用代码,但我就是不理解。我来自PHP和C,这两种语言都有访问数据库的非常简单的方法。Java似乎没有。没有简单的方法可以查询数据库并将select中的数据放入ListArray中吗?您可以使用myDB.rawQuery并返回游标。然后,您可以使用cursor.getStringYOUR_COLUMN_NAME并将其添加到数组中。我通常使用的另一个选项是将这些值存储在hashmap中,将_ID存储为值,并将我的可搜索项存储在键中,这样我就可以通过一个查询轻松找到所需的所有内容,您的数据库助手类根本帮不上我的忙,而不是让多个数据库事务发生,从而导致速度极度缓慢。它假设当我从资产导入现有数据库时,它正在运行时创建数据库,但我认为我可以解决这个问题。关于这段代码,我不理解的第二件事是查询。cursor=mDatabase.queryMY_TABLE,null,null,null,null,null,null;这基本上只是从我的表中选择一个*吗?老实说,我仍在试图弄清楚如何理解文档。我放弃了。那里的列表代码不起作用,我无法对文档进行头尾分析,以找出如何使其起作用。我将看看我能在xml中做些什么来实现这一点,并省去sqlite所需的特性。我将在以后尝试解决这个问题,并将其作为更新添加到应用程序中。@Ovidiu Latcu MyItem从何而来?
private static class DatabaseHelper extends SQLiteOpenHelper{
private final static String DATABASE_CREATE="create table " + MY_TABLE + " (id integer primary key, country string);";
public DatabaseHelper(Context context,String name, CursorFactory factory, int version){
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db){
db.execSQL(DATABASE_CREATE);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion,
int newVersion){
Log.w(TAG, "Upgrading database from version " + oldVersion
+ " to "
+ newVersion + ", which will destroy all old data");
db.execSQL("DROP TABLE IF EXISTS "+ MY_TABLE);
onCreate(db);
}
}