执行新的SQLite查询是否安全,同时仍在迭代光标以获得先前的查询? (机器人)

调用sqliteDatabase.query并获取一个Cursor.虽然我仍在迭代该游标,但是从同一个线程发出其他查询是否安全?

解决方法:

是.您可以在同一个线程中拥有多个未完成的查询,并可以独立访问每个游标.

我将以下代码添加到测试活动中,并按预期运行:

sqliteDatabase connection = getApplicationContext().openorCreateDatabase("foo.db", MODE_PRIVATE, null);
try {
    connection.execsql("drop table if exists person");
    connection.execsql("create table person (id integer, name string)");
    ContentValues cv = new ContentValues();
    cv.put("id", 1);
    cv.put("name", "leo");
    connection.insert("person", null, cv);
    cv = new ContentValues();
    cv.put("id", 2);
    cv.put("name", "yui");
    connection.insert("person", null, cv);

    Cursor rs = connection.query("person", new String[] {"id", "name" }, null, null, null, null, null);

    while(rs.movetoNext())
    {
        System.out.println("name = " + rs.getString(1));
        System.out.println("id = " + rs.getString(0));

        Cursor rs2 = connection.query("person", new String[] {"id", "name" }, null, null, null, null, null);
        while (rs2.movetoNext()) {
            System.out.println("name = " + rs2.getString(1));
            System.out.println("id = " + rs2.getString(0));
        }
    }
} catch (Exception e) {
    System.out.println("Exception " + e);
}

相关文章

SQLite架构简单,又有Json计算能力,有时会承担Json文件/RES...
使用Python操作内置数据库SQLite以及MySQL数据库。
破解微信数据库密码,用python导出微信聊天记录
(Unity)SQLite 是一个软件库,实现了自给自足的、无服务器...
安卓开发,利用SQLite实现登陆注册功能