用于实际设备的IBM Worklight SQL适配器



如果我使用本地数据库,比如MySQL,它在模拟器和模拟器上工作完美,但对于实际设备,localhost不会这样做,所以我尝试在线数据库托管。

当使用www.freemysqlhosting.net的在线托管时,我使用提供的id和密码在Eclipse的数据库开发角度中设置了数据库,因此它在我的模拟器,模拟器和实际设备上运行良好,这些设备连接到与数据库设置系统相同的网络,但对于任何匿名设备,它都失败了!

然后我尝试使用sqllite,再次与模拟器和模拟器一起工作,但对于实际设备,它显示UNRESPONSIVE_HOST错误。

我的问题是:如果我想使用IBM Worklight开发一个应用程序,使用一些数据库,并想要分发它,我该怎么做?

如果你能提供LogCat的错误日志,那就更有帮助了…

在使用Android时,最好不要使用localhost,而是使用实际的IP地址。请参阅这个问题:IBM Worklight—使用IP地址而不是localhost

时无法连接到数据库

MySQL是一个像其他服务器一样的服务器;如果您想在您的私有本地网络之外使用它,那么您只需要将它打开以接受来自公共Internet的传入连接。这不是开发人员需要操心的事情,这是IT部门的工作。所以谷歌一下,看看如何打开你的网络。

这听起来好像您正在尝试直接从设备访问数据库。是这样吗?

我强烈建议在这里使用Worklight适配器。所以模式是:

 App on Device ---> Adapter ---> Database

在这种模式下,从设备到适配器的责任在于Worklight,因此应该完全不受它是真实设备还是模拟设备的影响,并且应该独立于您正在使用的特定数据库或它在哪里。

从适配器到数据库的跳转是您可以设置和测试的东西,甚至没有部署到任何地方。只需使用Eclipse中的测试环境来调用适配器方法。

为什么不直接从设备到数据库?一般来说,这是一个非常糟糕的安全模式,你实际上是把你关心的数据放在一个非常容易被黑客攻击的地方。此外,它不能很好地扩展到大量用户:直接从设备连接意味着实际上每个用户都有自己的连接,通过适配器用户共享一个可控数量的连接。

您的问题不在于SQL服务器,而在于设备和Worklight服务器之间的连接。您需要能够从设备连接到Worklight服务器。在设备上打开浏览器,并将其指向Worklight控制台,看看您是否可以访问它。

最新更新