作者:不雅cf居 | 来源:互联网 | 2023-02-09 19:50
我有一种将值插入sqlite
类的方法。在主要活动中,我正在解析json值,并尝试将值插入到sqlite
循环中,因为我必须插入多个行。但是只有一行被添加到数据库中。
添加多行的方法如下:
public void addSession(String sessionname,String start_time,String end_time,String id) {
SQLiteDatabase db = this.getWritableDatabase();
try {
db.beginTransaction();
String sql = "Insert into session (id, sessionname,start_time, end_time) values(?,?,?,?)";
SQLiteStatement insert = db.compileStatement(sql);
insert.bindString(1, id);
insert.bindString(2, sessionname);
insert.bindString(3, start_time);
insert.bindString(4, end_time);
insert.execute();
db.setTransactionSuccessful();
} catch (Exception e) {
Log.w("Appet8:",e );
} finally {
db.endTransaction();
}
}
在下面的for循环中,我尝试将值添加到sqlite表中:
JSONObject jsOnObject= new JSONObject(response);
JSONArray foodsessiOns= jsonObject.getJSONArray("foodsessions");
for(int i=0;i
Alan..
5
更好的结构是在方法外部创建db引用,并将其作为引用传递:
SQLiteDatabase db = this.getWritableDatabase();
db.beginTransaction();
// your for loop
db.setTransactionSuccessful();
db.endTransaction();
==============请在下面检查用于插入多行的内容:
// adb is SQLiteOpenHelper
JSONObject jsOnObject= new JSONObject(response);
JSONArray foodsessiOns= jsonObject.getJSONArray("foodsessions");
int length = foodsessions.length();
for (int i = 0; i
一个更好的解决方案是避免使用原始查询(如果可以通过提供的方法来完成)SQLiteDatabase
。
1> Alan..:
更好的结构是在方法外部创建db引用,并将其作为引用传递:
SQLiteDatabase db = this.getWritableDatabase();
db.beginTransaction();
// your for loop
db.setTransactionSuccessful();
db.endTransaction();
==============请在下面检查用于插入多行的内容:
// adb is SQLiteOpenHelper
JSONObject jsOnObject= new JSONObject(response);
JSONArray foodsessiOns= jsonObject.getJSONArray("foodsessions");
int length = foodsessions.length();
for (int i = 0; i
一个更好的解决方案是避免使用原始查询(如果可以通过提供的方法来完成)SQLiteDatabase
。