【发布时间】:2021-01-31 17:33:16
【问题描述】:
我正在创建一个应用程序,其中数据首先存储在 RoomDb 中,然后将存储的数据发送到服务器。我已成功将数据存储在 RoomDb 中,但现在如何将数据发送到服务器。这是我到目前为止所做的:
ProductDao.java
@Dao
public interface ProductDao {
@Insert(onConflict = OnConflictStrategy.IGNORE)
void insert(CartProduct... products);
}
CartProduct.java
@Entity(tableName = "MyProduct")
public class CartProduct {
@PrimaryKey(autoGenerate = true)
@NonNull
int id;
@ColumnInfo(name="_pid")
String _pid;
@ColumnInfo(name="name")
String name;
@ColumnInfo(name="price")
int price;
@ColumnInfo(name="bulk_price")
int bulk_price;
@ColumnInfo(name="image_url")
String image_url;
@ColumnInfo(name="qnt")
int qnt;
@ColumnInfo(name ="discount_price")
int disprice;
public CartProduct(String _pid, String name, int price, int bulk_price, String image_url, int qnt,int disprice) {
this._pid = _pid;
this.name = name;
this.price = price;
this.bulk_price = bulk_price;
this.image_url = image_url;
this.qnt = qnt;
this.disprice = disprice;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String get_pid() {
return _pid;
}
public void set_pid(String _pid) {
this._pid = _pid;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getPrice() {
return price;
}
public void setPrice(int price) {
this.price = price;
}
public int getBulk_price() {
return bulk_price;
}
public void setBulk_price(int bulk_price) {
this.bulk_price = bulk_price;
}
public String getImage_url() {
return image_url;
}
public void setImage_url(String image_url) {
this.image_url = image_url;
}
public int getQnt() {
return qnt;
}
public void setQnt(int qnt) {
this.qnt = qnt;
}
public int getDisprice() {
return disprice;
}
public void setDisprice(int disprice) {
this.disprice = disprice;
}
}
ProductDb.java
@Database(entities = {CartProduct.class},version = 2,exportSchema = false)
public abstract class ProductDb extends RoomDatabase {
public abstract ProductDao productDao();
private static ProductDb instance;
public static synchronized ProductDb getInstance(Context context){
if(instance == null){
instance = Room.databaseBuilder(context.getApplicationContext(),ProductDb.class,"Product_db")
.allowMainThreadQueries().fallbackToDestructiveMigration().build();
}
return instance;
}
}
MainActivity.java
ProductDb db = ProductDb.getInstance(context);
CartProduct cartProduct = new CartProduct(model.getId(),model.getName(),Integer.parseInt(model.getPrice()),
Integer.parseInt(model.getDisprice()),model.getImgurl(),1,Integer.parseInt(model.getDisprice()));
db.productDao().insert(cartProduct);
如何将此房间数据发送到服务器?
【问题讨论】:
-
.allowMainThreadQueries()这是个糟糕的主意 -
你能从房间里读取数据吗?你能打api调用吗?您正在为哪些问题苦苦挣扎?你是完全不能同时做这两件事还是你正在为具体而苦苦挣扎?您将 1) 读回数据,然后 2) 将其发送到服务器,不确定您在这里遇到什么问题
-
.allowMainThreadQueries()我该如何纠正这个问题。 -
我可以在 RoomDb 中读取和写入数据,但我想将数据发送到存储在 RoomDB 中的服务器。
标签: android android-room