Java 在从服务器数据更新表sqlite之前,是否应该先从表sqlite中删除数据?
这是我第一次打开活动时在应用程序上执行的逻辑:Java 在从服务器数据更新表sqlite之前,是否应该先从表sqlite中删除数据?,java,android,android-sqlite,Java,Android,Android Sqlite,这是我第一次打开活动时在应用程序上执行的逻辑: 当主活动打开时,检查网络是否可用 若网络已连接,则从服务器获取数据,然后保存到sqlite。如果网络不可用,则显示toast警报用户需要连接网络 主活动逻辑第二次打开 检查网络是否可用 若网络已连接,则从服务器获取数据。现在我还想在sqlite上保存新数据,但sqlite数据现在包含旧数据。我应该先删除表中的所有旧数据,然后从服务器插入新数据吗?如果不删除并继续将新数据插入sqlite,表将重复数据,我如何解析 对不起,我的英语错了,问题重复了。我
对不起,我的英语错了,问题重复了。我正在寻找从服务器获取数据的最佳方法。如果有人给我一个如何处理的例子,我将非常感谢 将数据作为来自服务器端的唯一主键。将数据作为来自服务器端的唯一主键。如果您处理的是一个小数据集(比如小于100个值),则您的方法相当简单且可接受 但是,对于大型数据集,需要考虑建立一种同步机制,在这种机制中,只要求服务器具有本地数据和服务器上可用的数据的差异。 一种方法是保持同步键
在这种方法中,服务器必须维护更改历史记录,但对于移动客户端来说,它在数据库和网络方面是有效的。如果您处理的是一个小数据集(比如小于100个值),那么您的方法是相当简单和可接受的 但是,对于大型数据集,需要考虑建立一种同步机制,在这种机制中,只要求服务器具有本地数据和服务器上可用的数据的差异。 一种方法是保持同步键
在这种方法中,服务器必须维护更改历史记录,但在数据库和网络方面,这对于移动客户端来说是有效的。您可以向表中添加
主键
,并在从服务器获取数据时使用插入或替换
SQL语句。@Titus:谢谢,但来自服务器的数据是JSON,并且没有id主键,所以我不知道需要替换哪些数据,需要插入的。您可以将JSON
对象中任何假定为唯一的值用作主键
,也可以通过组合此对象中的多个值来创建唯一标识符。您可以将主键
添加到表中,并在获取来自服务器的数据。@提图斯:谢谢,但来自服务器的数据是JSON,并且没有id主键,所以我不知道需要替换哪些数据,需要插入的。您可以将JSON
对象中任何假定为唯一的值用作主键,也可以通过组合此对象中的多个值来创建唯一标识符。谢谢您的回答。你们能告诉我什么时候从服务器上取数据吗。我是在主活动的OnCreate()方法上做的,这是正确的方法吗?或者我需要一段时间的Intent服务在后台进行更新吗?这取决于您的用例:谢谢您的回答。你们能告诉我什么时候从服务器上取数据吗。我是在主活动的OnCreate()方法上做的,这是正确的方法吗?或者我是否需要由Intent Service在后台进行一段时间的更新?这取决于您的用例: