标签: database-independent

如何把java.util.HashMap转换成android.content.ContentValues?

有没有一种简单的方法从java转换Map<String,Object>android.content.ContentValues

android.content.ContentValues 用于android数据库编程,以将数据库行的数据保存为名称 - 值对.

背景:

我尝试将现有Android应用程序的businesslogic移植到j2se-swing-app

我的目标是拥有特定于android的代码和android独立代码,这些代码进入一个单独的lib,可以被android和swing-gui使用.

目前我正在分析

  • 如果我必须实现一个完整的单独的存储库实现集与大量的冗余代码
  • 或者是否存在可以在(j2se-swing-和android-)存储库实现中使用的公共代码.

Repository-Database-Code依赖于使用的database-field-name-value对android.content.ContentValues.

我认为我的android independat版本可以使用一个HashMap<String,Object>insead ContentValues并创建代码在两者之间进行转换.

Android依赖版本看起来像这样

    // android dependant code in android-app
    class AndroidTimeSliceCategoryRepsitory implements ICategoryRepsitory {

        public long createTimeSliceCategory(final TimeSliceCategory category) {

            // get values from android independant layer
            Map<String, Object> columsToBeInserted = TimeSliceCategorySql.asHashMap(category);

// >>>> this is where i am stuck
            ContentValues androidColumsToBeInserted = DbUtils.asContentValues(columsToBeInserted);

            final long newID = AndroidTimeSliceCategoryRepsitory.DB.getWritableDatabase()
                    .insert(TimeSliceCategorySql.TIME_SLICE_CATEGORY_TABLE, null, androidColumsToBeInserted);
            category.setRowId((int) newID);
            return newID;
        }
    } …
Run Code Online (Sandbox Code Playgroud)

java sqlite android platform-independent database-independent

5
推荐指数
1
解决办法
2821
查看次数

我应该将记录信息存储在主数据库表中吗?

例如,假设我有一张产品表.我应该存储日志信息,例如它是由谁创建的,上次编辑的,最后更新的日期,......或者如果日志信息与实际应用程序无关,我应该在审计表中分隔日志信息吗?

谢谢.

database-design database-independent

4
推荐指数
1
解决办法
194
查看次数