【问题标题】:Android - Access to online Database SQliteAndroid - 访问在线数据库 SQlite
【发布时间】:2011-06-01 13:25:49
【问题描述】:

我需要从 Android 应用打开、读取项目并将其插入在线 SQLite 数据库
我知道 url、用户名和密码。在 JavaSE 中,我会执行以下操作:

Class.forName("com.mysql.jdbc.Driver");
Connection dbConnection = DriverManager.getConnection(URL, USER, PASSWORD);

我读到我不能在 Android 中执行此操作,因为没有 JDBC 驱动程序(有一个 "SQLite.JDBCDriver",但没有记录,不推荐)。
那么哪种方法最简单呢?我问过 Google,但看起来他也不知道。

【问题讨论】:

  • 我怀疑“正确”的方法是创建一个 RESTful Web 服务作为您的数据库的接口。

标签: java android database sqlite jdbc


【解决方案1】:

至少出于以下原因,您应该通过 Web 服务等中介公开您的数据源:

  • 有人可以直接访问您的数据源,并且可以读取、操作或销毁数据
  • 抽象;您可以控制数据的发送方式及其表示方式。如果数据库表/对象发生变化,您只需更改网络服务而不是强制更新(在某些情况下)
  • Android 开箱即用地很好地支持 JSON 交互,而 JDBC 则不支持(由于先前记录的原因)

我敢肯定还有很多其他原因,但以上是我认为最普遍的原因。

【讨论】:

    【解决方案2】:

    Android 上没有对 JDBC 的官方支持。有一个私有的 SqlLite 驱动程序,但不推荐使用,因为它不受支持并且将来可能会消失。

    阅读这些:

    Does Android Support JDBC

    http://groups.google.com/group/android-developers/browse_thread/thread/cf3dea94d2f6243c

    http://code.google.com/p/sqldroid/

    因此,推荐的方法是不使用内部(私有)SQlite 驱动程序,而是在服务器上创建一个 REST 层,您可以通过该层访问数据。这是一种推荐的方式,因为它可以最大限度地减少设备端的负载,还可以让您有机会在服务器端创建身份验证 - 拥有可公开访问的 JDBC 连接是一个很大的禁忌。

    【讨论】:

    • 我已经阅读了这三页,但它们对我的练习没有帮助:) 我应该使用哪些课程?使用这个 sqldroid 驱动是个好主意吗?
    • 不要使用 JDBC。在服务器上创建一个 REST 层。我更新了答案。
    • 使用 Jersey 来简单地构建一个 REST 层:wikis.sun.com/display/Jersey/Main
    • ehm...对于我的知识来说它看起来相当先进:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-26
    • 2012-08-28
    • 2011-07-17
    • 1970-01-01
    • 2018-08-04
    • 1970-01-01
    相关资源
    最近更新 更多