sqlserver数据库与Android

sqlserver数据库与Android,android,sql-server,database,Android,Sql Server,Database,我正在用Android设备连接SQL Server数据库。是的,我知道不是很明智,但除了。。。嗯,很慢 以下是我的工作: 开放连接 从服务器数据库中逐表下载我需要的数据(使用我在网上找到的连接器) 在sqlite中逐个插入表 我只选择我需要的;大约有12张桌子,有些有300件左右 然后我将一些数据发送到服务器数据库(从2个表中选择) 如果不使用web服务,我如何使事情更快地工作?(如有可能) 如果我使用web服务,它会更快吗 提前多谢 PS:我知道以这种方式访问数据库会有风险,但在这种情况下

我正在用Android设备连接SQL Server数据库。是的,我知道不是很明智,但除了。。。嗯,很慢

以下是我的工作:

  • 开放连接
  • 从服务器数据库中逐表下载我需要的数据(使用我在网上找到的连接器)
  • 在sqlite中逐个插入表
我只选择我需要的;大约有12张桌子,有些有300件左右

然后我将一些数据发送到服务器数据库(从2个表中选择)

如果不使用web服务,我如何使事情更快地工作?(如有可能)

如果我使用web服务,它会更快吗

提前多谢


PS:我知道以这种方式访问数据库会有风险,但在这种情况下它们并不相关

您真的需要在Android上复制相同的模式吗?试着把范围缩小到基本数据,也许为Android应用程序创建一个新的“光”模式。不要使用
选择*
,只获取所需的列。即使这样,第一次同步也可能相对较慢。同步一次后,您只能获取最新的项目,因此应该会更快


如果您想使用Web服务,您必须重新考虑您的模型:您将使用实体(客户、订单等),而不是将表与行同步。如果传输相同数量的数据,Web服务不会更快,甚至可能更慢。Web服务的好处是,您不必知道服务器上的确切模式,因此,如果应用程序发生更改,您无需更改它(当然,只要它拥有您需要的所有数据);从服务的角度考虑,会使您只使用所需的数据,从而加快整个交互过程。当然,它可以在网络上工作,因此它可以与代理、NAT等一起工作。

初始同步后,您可以对android应用程序进行编码,将数据保留在sqllite中,并且只在下一次连接时下载差异/更改


根据服务器上数据的变化程度,此方法可以减少同步时间。

使用webservice“使用实体”是什么意思?我已经在检索数据时使用了对象,我将它们放在对象的arraylist中,然后使用这些对象插入sqlite DB。错了吗?还有其他方法吗?通过“在实体中工作”,我的意思是,使用Web服务,您将传输一个包含10个产品(编码为JSON、XML或其他内容)的列表,而不是
Product
表中的10行5列。由于您使用Java,自然会在代码中使用对象,这与web服务和/或数据库无关。