【发布时间】:2017-04-15 16:30:03
【问题描述】:
我正在使用execSQL 命令将数据插入到包含外键的表中。
这就是我目前的做法。
String query = "INSERT INTO "+ SunshineContract.WeatherEntry.TABLE_NAME +" ( "+
SunshineContract.WeatherEntry.COL_LOC_KEY + ", "+
SunshineContract.WeatherEntry.COL_WIND_SPEED+ ", "+
SunshineContract.WeatherEntry.COL_DEGREE+ ") VALUES ((SELECT " +
SunshineContract.LocationEntry._ID + " FROM "+ SunshineContract.LocationEntry.TABLE_NAME + " WHERE "+
SunshineContract.LocationEntry._ID + " = 1 ), "+
80, 98);";
sqLiteDatabaseWritable.execSQL(query);
我想使用内容提供程序将数据插入我的数据库。但目前,我无法使用内容提供程序插入我的数据,因为我无法为此外键字段构造内容值。
contentValue.put(SunshineContract.WeatherEntry.COL_LOC_KEY, 'SELECT " +
SunshineContract.LocationEntry._ID + " FROM "+ SunshineContract.LocationEntry.TABLE_NAME + " WHERE "+
SunshineContract.LocationEntry._ID + " = 1 )'
是否有任何方法可以使用ContentValues 将数据插入到包含外键的表中,以便我可以使用ContentResolver?
【问题讨论】:
-
在大多数情况下,数据将来自 web api(json 或 xml),您必须将该 json 解析为一些 java 数据对象。然后,您只需在插入表时将此 java 数据对象的属性作为 ContentValue 放置。您能否详细解释一下您的问题的背景故事?
标签: android sqlite android-sqlite android-contentprovider