实际上并未插入插入的行

时间:2016-02-17 04:37:04

标签: java android json sqlite

我正在通过网络以JSON格式下载一些数据,并在检索之后,我将其存储在SqlLiteDatabase中。之前我用来获取数据并在RecyclerView中显示它,但现在我将它存储在SqlLite数据库中,然后在RecyclerView中显示它。但是,数据在返回true时成功存储,但是当我显示数据时,它什么也没显示。要在添加数据后检查数据是否存在,我会得到可用数据的计数,并返回0.

以下是代码:

public boolean create(List<PGCardItemReturn> objectPg) {

    SQLiteDatabase db = this.getWritableDatabase();

    PGCardItemReturn lastItem = null;;
    db.beginTransaction();
    String sql = "Insert or Replace into tenant_pg (id,furnishing,area,price,numberofbeds,image_url) values(?,?,?,?,?,?)";
    SQLiteStatement insert = db.compileStatement(sql);
    for(int i=0;i<objectPg.size();i++){
        PGCardItemReturn item = objectPg.get(i);
        if(i == (this.count()-1)){
            lastItem = item;
        }
        insert.bindString(1, item.getId());
        insert.bindString(2, item.getFurnishing());
        insert.bindString(3, item.getArea());
        insert.bindString(4, item.getPrice());
        insert.bindString(5, item.getNumberofbeds());
        insert.bindString(6, item.getImageUrl());

        insert.execute();
    }



    db.endTransaction();



    return true;
}

在主要的Acvitiy:

boolean add = new TableControllerTenant_pg(getApplicationContext()).create(listPG);

1 个答案:

答案 0 :(得分:0)

您正在呼叫beginTransaction()。 它的文件说:

  

如果任何交易结束而未被标记为干净(通过调用setTransactionSuccessful),则将回滚更改。