首页 > 解决方案 > 改造、RxJava 和 Sqlite

问题描述

我已经使用 Retrofit 从服务器检索数据,现在我正在尝试使用 sqlite 数据库进行存储

        WebserviceHandler.getImagePathSelectAl() 
                        .subscribeOn(Schedulers.io())
                        .flatMap(s -> WebserviceHandler.getCtbLeidSource())
                        .subscribeOn(Schedulers.io())
                        .subscribe(.................);

和响应模型类

          public class ImagePathResponse {

            @SerializedName("Message")
            @Expose
            private String message;
            @SerializedName("HasColumns")
            @Expose
            private Integer hasColumns;
            @SerializedName("ErrorMessage")
            @Expose
            private String errorMessage;
            @SerializedName("ImagePath_insert")
            @Expose
            private List<ImagePath> imagePathInsert = null;
            @SerializedName("ImagePath_update")
            @Expose
            private List<ImagePath> imagePathUpdate = null;

       public class LeedSourceResponse { 
        @SerializedName("Message")
        @Expose
        private String message;
        @SerializedName("HasColumns")
        @Expose
        private Integer hasColumns;
        @SerializedName("ErrorMessage")
        @Expose
        private String errorMessage;
        @SerializedName("LeedSource_insert")
        @Expose
        private List<LeedSource> leedSourceInsert = null;
        @SerializedName("LeedSource_update")
        @Expose
        private List<LeedSource> leedSourceUpdate = null;

现在我想在每个响应中插入和更新 sqlite db,如何实现这一点。我是 RxJava 和 RxAndroid 的新手

标签: androidretrofitrx-javaretrofit2rx-android

解决方案


您可以检查 Rooms 持久性库,它是 android Rooms的 sql 库,但在这种情况下,我建议您使用RealmDb而不是 sql,如果您想为每个响应保存日期,它会更快并且可以完美运行。


推荐阅读