通过翻新Android在阵列中以正文形式发送ROOM数据库列表数据

问题描述

我想通过翻新将Room Database中保存的数据发送到Body中。我将数据保存在“房间”中的列表中,并将通过翻新网络库将其发送到正文中。下面是相同的代码。

房间桌子类

@Entity(tableName = "cash")
public class Cash implements Serializable {
@PrimaryKey(autoGenerate = true)
private int id;
@SerializedName("UserID")
@ColumnInfo(name = "UserID")
private String UserID;
@SerializedName("FareAmount")
@ColumnInfo(name = "FareAmount")
private String FareAmount;
@SerializedName("TransactionId")
@ColumnInfo(name = "TransactionId")
private String TransactionId;

public String getTransactionId() {
    return TransactionId;
}

public void setTransactionId(String transactionId) {
    TransactionId = transactionId;
}
public int getId() {
    return id;
}

public void setId(int id) {
    this.id = id;
}

public String getUserID() {
    return UserID;
}

public void setUserID(String userID) {
    UserID = userID;
}
public String getFareAmount() {
    return FareAmount;
}

public void setFareAmount(String fareAmount) {
    FareAmount = fareAmount;
}

Dao界面

@Dao
public interface CashDao {

@Query("Select * from cash ORDER BY id ASC")
List<Cash> getCashList();
@Insert
void insertCash(Cash cash);
@Update
void updateCash(Cash cash);
@Delete
void deleteCash(Cash cash);

@Query("DELETE FROM cash")
void deleteAll();

}

TransactionDatabase类

@Database(entities = {Cash.class},exportSchema = false,version = 3)
public abstract class TransactionDatabase extends RoomDatabase {

private static final String DB_NAME = "transaction_db";
private static TransactionDatabase instance;

public static synchronized TransactionDatabase getInstance(Context context){
    if (instance == null){
        instance = 
Room.databaseBuilder(context.getApplicationContext(),TransactionDatabase.class,DB_NAME)
                .fallbackToDestructiveMigration()
                .allowMainThreadQueries()
                .build();
    }
    return instance;
}

public abstract CashDao cashDao();
}

MainActivity

btn_save.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            cash = new Cash(str_userId,str_fareAmount,str_transactionId);
            appDB.cashDao().insertCash(cash);
            }
    });

   btn_upload.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        
        List<Cash> cashlist = appDB.cashDao().getCashList();
        if(cashlist.size() == 0){
            Toast.makeText(MainActivity.this,"Data is already uploaded!",Toast.LENGTH_SHORT).show();
        } else {
        // upload data code here
        }
        appDB.cashDao().deleteAll();
    }
});


public interface AppServiceAPI{

@POST("/Api/OfflineCashTransaction")
Call<ServiceOfflineAPI> cashtxn(@Body Cash cash);
}

我想在主体json中发送数据,并通过Retrofit将类型如下所示为POST。

[{
"UserId":"Test","FareAmount":"65","TransactionId":202008281139
},{
"UserId":"Test","FareAmount":"95","TransactionId":202008281140
},"FareAmount":"195","TransactionId":202008281156
}]

响应如下:

 {
"Status": true,"Error": "","Message": "3 : Transaction  successfully Saved!!.","Data": ""
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)