我正在使用AsyncTask连接到远程SQL Server数据库不知何故,应用程序停止在:
Connection conn = DriverManager.getConnection(url);
我在其他 java 应用程序中测试了连接字符串,它正在工作这是我的异步任务代码:
private class ValidateUser extends AsyncTask<String, Integer, Integer> {
@Override
protected Integer doInBackground(String... params) {
try {
String url = getResources().getString(R.string.ConnectionString);
String username = params[0];
String password = params[1];
Log.d("url", url);
Log.d("username", username);
Log.d("password", password);
Class.forName("net.sourceforge.jtds.jdbc.Driver").newInstance();
Connection conn = DriverManager.getConnection(url);
if (conn == null) // couldn't connect to server
{
return -1;
}
Statement statement = null;
ResultSet resultSet = null;
String sql = "select EMPLOYEE_ID from EMPLOYEES "
+ "where EMPLOYEE_USERNAME = '" + username + "' "
+ "and EMPLOYEE_PASS = '" + password + "'";
statement = conn.createStatement();
resultSet = statement.executeQuery(sql);
if (resultSet.next()) {
return resultSet.getInt("EMPLOYEE_ID");
}
} catch (Exception e) {
Log.d("BEZRA",e.getMessage());
return -1;
}
return 0;
}
}
我明白了,代码很好。它只是响应 - 大约 5 分钟没有响应 - 除了它无法解析服务器名称,所以我用内部 IP 替换了它,一切正常。