我一直在寻找将Android应用程序连接到SQL Server的方法。尝试了不同的代码,并询问了许多程序员。一无所获。看来问题出在连接网址中。
我要做的应用程序涉及创建一些sql表。例如,在开始时,它需要根据这些表之一中的数据验证用户提供的登录数据。 除了Android Studio外,还指导我安装和使用SQL Server Express(没有其他功能)。
使用SQL Server Express 2008 R2,我在计算机上创建了一个数据库和一个表。与服务器的连接无效。我发现的代码始终包含用于连接的密码和用户名。这是强制性的吗?安装服务器时,我没有获得用于连接的用户名。它涉及获取实例名称和密码。
我搜索了有关连接URL的参数的信息,以便修复获得的URL。找不到我需要更改的内容。
我发现了一个thoguh代码,可以定义一个密码和一个用户名:
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
。
谢谢!
答案 0 :(得分:0)
您将需要在Web服务器上运行的API(REST等),并且该Web服务器可以访问经过防火墙保护的数据库服务器。并对您的API进行身份验证,这样您就不会再有随机的人对您的服务和数据库进行DDoS了。
您的数据库服务器不应完全暴露于Internet,也不能直接从客户端访问。您也不应将SQL查询直接从客户端直接发送到数据库服务器。您的API公开了一组功能,并且对客户端可以请求和接收的内容有严格的限制。
移动应用->互联网-> Web服务器->防火墙-> SQL Server
“如何实现此目标”的详细信息远远超出了Stack Overflow的范围。在线提供了许多教程和演练。明智地选择。
附加说明:您说您正在使用SQL Server 2008R2 Express Edition。请注意,此版本的SQL Server在不到三个月的时间内将终止。在过去的五年中,没有人应该对此进行新的开发。请仔细听取任何“指导”您在2019年安装此版本的建议。