【问题标题】:Connecting android app to local MS SQL database将 android 应用程序连接到本地 MS SQL 数据库
【发布时间】:2017-06-10 02:17:00
【问题描述】:

我正在尝试将我的 Android 应用程序连接到我的本地计算机数据库 MS SQL。这是我的连接字符串:

jdbc:jtds:sqlserver://localhost:1433/DajSve;encrypt=false;user=root;password=null;instance=FALE//SQLEXPRESS;

我得到了这个错误:

java.sql.SQLException:网络错误 IOException:无法连接到 localhost/127.0.0.1(端口 1433):连接失败:ECCONREFUSED(连接被拒绝)

我尝试了很多东西。多次更改连接字符串,启用 TCP/IP 并将其设置为端口 1433,还关闭了防火墙,但没有任何帮助。我总是得到相同的 SQL 异常。我正在使用 SQL Server 2016..

  try {

        Class.forName(className).newInstance();
        connection = DriverManager.getConnection("jdbc:jtds:sqlserver://localhost:1433/DajSve;encrypt=false;user=root;password=null;instance=FALE//SQLEXPRESS;");

        System.out.print("Uspjesno spojeni na bazu");
        Statement stmt = connection.createStatement();
        ResultSet reset = stmt.executeQuery("select * from Korisnik");

        if (!reset.isBeforeFirst() ) {
            System.out.println("nema podataka");
        }else{
            System.out.println("ima podataka");
        }

    } catch (SQLException e) {
        e.printStackTrace();
        System.out.print("Greska pri spajanju na bazu");
    } catch (ClassNotFoundException e){
        System.out.print("Greska - klasa nije pronađena");
    } catch (InstantiationException e) {
        e.printStackTrace();
    } catch (IllegalAccessException e) {
        e.printStackTrace();
    }

我知道有很多类似的问题,但没有一个答案有帮助

【问题讨论】:

  • This 帖子说您应该使用 10.0.2.2 而不是 127.0.0.1 作为 IP。你检查了吗?
  • 连接到 SQL server 上的 RESTful API

标签: java android sql-server jdbc


【解决方案1】:

无法连接到 localhost/127.0.0.1

您的 Android 设备未运行 SQL Server。提供网络上的实际服务器地址(但实际上不要,因为您不应该将数据库凭据存储为应用程序的一部分,加上持久的 JDBC 连接会缩短电池寿命)。

当您的代码存在于远程设备上时,它不是本地数据库

您实际上会想要创建一个新应用程序,作为 Android 应用程序和数据库之间的后端 API,您可以在其中公开连接到数据库并在那里解析结果的函数,而不是在 Android 中完成所有操作应用

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-10-09
    • 2013-06-01
    • 2021-09-12
    • 2022-01-26
    • 1970-01-01
    • 2012-04-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多