【问题标题】:Connecting an Android application to sql server through sql server express通过 sql server express 将 Android 应用程序连接到 sql server
【发布时间】:2019-04-20 11:48:01
【问题描述】:

我一直在寻找一种将 Android 应用程序连接到 SQL 服务器的方法。尝试了不同的代码并询问了许多程序员。没有得到任何地方。看来问题出在连接url上。

我要做的应用程序涉及创建一些 sql 表。例如,在开始时,它需要根据其中一个表中的数据验证用户提供的登录数据。 除了 Android Studio,我还被引导安装和使用 SQL server express(仅此而已)。

我使用 SQL server express 2008 R2 在我的计算机上创建了一个数据库和一个表。与服务器的连接不起作用。我发现的代码总是涉及连接的密码和用户名。这是强制性的吗?安装服务器时,我没有获得连接的用户名。它涉及获取实例名称和密码。

我搜索了有关连接 url 参数的信息,以修复我得到的 url。找不到我需要更改的内容。

我找到了一个可以定义密码和用户名的代码:

private Connection conn;

    public MySQLConnection() throws SQLException {

        System.out.println("At MySQLConnection()");

        String driverName = "com.mysql.jdbc.Driver";
        try {
            Class.forName(driverName);
            Properties props = new Properties();
            props.setProperty("user","fred");
            props.setProperty("password","secret");
            props.setProperty("ssl","true");

            String url = "jdbc:mysql://zivpc/workers?user=fred&password=secret&ssl=true";
            Connection conn = DriverManager.getConnection(url);
            this.conn = DriverManager.getConnection(url);

            System.out.println("connected");


        } catch (ClassNotFoundException e) {
            System.out.println(e);
        }

尝试连接会导致以下异常:CommunicationsException: Communications link failure

谢谢!

【问题讨论】:

  • 首先,JDBC 不是为与移动设备一起使用而设计的,移动设备的连接可能会在随机点断开,请重新考虑您在做什么。除此之外,您的代码适用于 MySQL。 MySQL 不是 SQL Server。
  • 我参与的任务是通过 sql server express 将一个 android 应用程序连接到 sql 数据库。有没有合适的方法来做到这一点,例如,使用 jdbc 以外的东西?
  • 从移动客户端与服务器通信的典型方式是通过 Web 服务。 Web 服务与数据库对话; Android 或 iOS 应用程序与 Web 服务对话。

标签: android sql-server


【解决方案1】:

您将需要一个在 Web 服务器上运行的 API(REST 等),并且该 Web 服务器可以访问被防火墙关闭的数据库服务器。并对您的 API 进行身份验证,这样您就不会有随机的人对您的服务和数据库进行 DDoSing。

您的数据库服务器根本不应该暴露在互联网上,也不应该从您的客户端直接访问。您也不应该直接从客户端发送 SQL 查询到数据库服务器。您的 API 公开了一组功能,并且对客户端可以请求和接收的内容非常严格。

移动应用 -> 互联网 -> 网络服务器 -> 防火墙 -> SQL Server

“我如何实现这个”的细节远远超出了 Stack Overflow 的范围。网上有很多教程和演练。明智地选择。

附加说明:您说您使用的是 SQL Server 2008R2 Express Edition。请注意,此版本的 SQL Server 将在不到三个月的时间内 EOL。在过去的 5 年里,没有人应该对它进行新的开发。请小心听取 2019 年“指导”您安装此版本的人的建议。

【讨论】:

  • 谢谢。我希望尽可能避免浪费时间和精力,所以我想知道您是否认为,以下链接中的教程对于将 Web 服务添加到 adroid 应用程序很有用,用于连接sql服务器:youtube.com/watch?v=QTO5a1IeBl8
猜你喜欢
  • 2019-09-08
  • 2013-01-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-06
相关资源
最近更新 更多