Android - DB Tables + POJO Class的类结构可以相同吗?

时间:2016-10-01 07:21:21

标签: java android mysql android-contentprovider android-database

我有25个以上的表格,我在数据库中使用了内容提供商

我为每个表创建了具有以下结构的单独文件:

    com.myapp.db.tables

    包中的
  • TProductUnit.java

    public class TProductUnit {
    
        /***
         * Fields of TABLE_PRODUCT_UNIT Table
         ***/
        public static final String TABLE_PRODUCT_UNIT = "product_unit";
        /**
         * Columns of TABLE_PRODUCT_UNIT
         */
        public static final String PRODUCT_UNIT_SERVER_ID = "id";
        public static final String PRODUCT_UNIT_NAME = "name";
        public static final String PRODUCT_UNIT_ITP = "itp";
        public static final String PRODUCT_UNIT_UTP = "utp";
        public static final String PRODUCT_UNIT_STATUS = "status";
    
        public static String[] PRODUCT_UNIT_COLUMNS = new String[] {
                BaseColumns._ID,
                PRODUCT_UNIT_SERVER_ID,
                PRODUCT_UNIT_NAME,
                PRODUCT_UNIT_ITP,
                PRODUCT_UNIT_UTP,
                PRODUCT_UNIT_STATUS
        };
    }
    
  • ProductUnit.java POJO类,这在首次从服务器获取数据时会有所帮助。

    public class ProductUnit {
    
            @SerializedName("id")
            @Expose
            private Integer id;
            @SerializedName("product_id")
            @Expose
            private Integer productId;
            @SerializedName("url")
            @Expose
            private String url;
            @SerializedName("bit")
            @Expose
            private int bit;
            @SerializedName("status")
            @Expose
            private Integer status;
            @SerializedName("itp")
            @Expose
            private String itp;
            @SerializedName("utp")
            @Expose
            private String utp;
    
            /**
             * @return The id
             */
            public Integer getId() {
                return id;
            }
    
            /**
             * @param id The id
             */
            public void setId(Integer id) {
                this.id = id;
            }
    
            public Integer getProductId() {
                return productId;
            }
    
            public void setProductId(Integer productId) {
                this.productId = productId;
            }
    
            public int getBit() {
                return bit;
            }
    
            public void setBit(int bit) {
                this.bit = bit;
            }
    
            public String getUrl() {
                return url;
            }
    
            public void setUrl(String url) {
                this.url = url;
            }
    
            /**
             * @return The status
             */
            public Integer getStatus() {
                return status;
            }
    
            /**
             * @param status The status
             */
            public void setStatus(Integer status) {
                this.status = status;
            }
    
            /**
             * @return The itp
             */
            public String getItp() {
                return itp;
            }
    
            /**
             * @param itp The itp
             */
            public void setItp(String itp) {
                this.itp = itp;
            }
    
            /**
             * @return The utp
             */
            public String getUtp() {
                return utp;
            }
    
            /**
             * @param utp The utp
             */
            public void setUtp(String utp) {
                this.utp = utp;
            }
    
            /**
             * Convenient method to get the objects data members in ContentValues object.
             * This will be useful for Content Provider operations,
             * which use ContentValues object to represent the data.
             *
             * @return
             */
            public ContentValues getContentValues() {
                ContentValues values = new ContentValues();
    
                values.put(PRODUCT_UNIT_SERVER_ID, id);
                values.put(PRODUCT_UNIT_NAME, name);
                values.put(PRODUCT_UNIT_ITP, itp);
                values.put(PRODUCT_UNIT_UTP, utp);
                values.put(PRODUCT_UNIT_STATUS, status);
    
                return values;
            }
    }
    

如果我们考虑@SerializedName

,两个类都具有大多数具有相同值的相同数量的字段

问题:

  1. 每当我需要在任何特定表中添加一些字段时,我都必须添加所有表文件和JSON POJO类。
  2. 当服务器端更改任何字段名称时,我必须更改这两个文件。
  3. 我的问题是:这种优化是否有更好的解决方案。你曾经这样管理过吗?

    P.S。我有25多个表,所以我必须创建50多个类。

    请帮助。感谢。

0 个答案:

没有答案