Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android SQLiteOpenHelper使用对象变量保存自定义对象_Android_Sqlite_Android Sqlite_Sqliteopenhelper - Fatal编程技术网

Android SQLiteOpenHelper使用对象变量保存自定义对象

Android SQLiteOpenHelper使用对象变量保存自定义对象,android,sqlite,android-sqlite,sqliteopenhelper,Android,Sqlite,Android Sqlite,Sqliteopenhelper,我正在使用SQLiteOpenHelper将数据保存到Android应用程序中的数据库中。我想将另一个自定义对象保存为变量的自定义对象 对象的示例: public class Device implements Serializable { public String deviceId; public Location location; public Device() { } } public class Location implements Serial

我正在使用SQLiteOpenHelper将数据保存到Android应用程序中的数据库中。我想将另一个自定义对象保存为变量的自定义对象

对象的示例:

public class Device implements Serializable {
    public String deviceId;
    public Location location;

    public Device() {
    }
}

public class Location implements Serializable {
    public double lat;
    public double lon;

    public Location() {
    }
}
我正试图将
设备
保存到我的数据库中。但是当我从db加载对象时,
位置
对象总是
,即使两个对象都实现了
可序列化
接口


我想让它尽可能简单,因为我只存储这个简单的对象

请尝试将对象存储为JSON。例如:“{deviceId:43,位置:{lat:43.43522,lon:34.5234}”。然后使用gson或Jackson。或者提供方法将对象转换为jsonString,反之亦然?或者您只需要可序列化?@MichaelSpitsin我可以将其存储为json,然后使用Gson将其还原回来。但我不确定这是否是最佳实践。是的,这是一种解决方案。可以存储2列。第一个是id,第二个是json。但若您将数据存储在json中,而不是直接存储在列中,那个么您将失去通过sql查询对对象进行分组、排序和e.t.c的可能性。所以你需要做出决定。当然,存储数据是JSON,比序列化更好,IMOH。我会考虑使用ORM,它们是为这个而构建的。