执行新的SQLite查询是否安全,同时仍在迭代光标以获得先前的查询
发布时间:2020-12-12 18:55:07 所属栏目:百科 来源:网络整理
导读:我调用SQLite Database.query并获取一个Cursor.虽然我仍在迭代该游标,但是从同一个线程发出其他查询是否安全? 解决方法 是.您可以在同一个线程中拥有多个未完成的查询,并可以独立访问每个游标. 我将以下代码添加到测试活动中,并按预期运行: SQLiteDatabase
我调用SQLite
Database.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",cv); Cursor rs = connection.query("person",new String[] {"id","name" },null); while(rs.moveToNext()) { System.out.println("name = " + rs.getString(1)); System.out.println("id = " + rs.getString(0)); Cursor rs2 = connection.query("person",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); } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |