java将安卓应用程序连接到本地MS SQL数据库
我正在尝试将我的Android应用程序连接到本地机器数据库MS SQL。这是我的连接字符串:
jdbc:jtds:sqlserver://localhost:1433/DajSve;encrypt=false;user=root;password=null;instance=FALE//SQLEXPRESS;
我得到了这个错误:
java。sql。SQLException:网络错误IOException:无法连接到本地主机/127.0.0.1(端口1433):连接失败:ECCONREPENDED(连接被拒绝)
我试了很多东西。多次更改连接字符串,启用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();
}
我知道有很多类似的问题,但没有一个答案有帮助
# 1 楼答案
你的Android设备没有运行SQL Server。给出网络上的实际服务器地址(但实际上不要,因为你不应该将数据库凭据存储为应用程序的一部分,再加上持久的JDBC连接会缩短电池寿命)
当代码存在于远程设备上时,它不是本地数据库
实际上,你需要创建一个新的应用程序,作为Android应用程序和数据库之间的后端API,在这里你可以公开连接到数据库的函数,并在那里解析结果,而不是在Android应用程序中完成所有操作