如何改善 SQL 连接
How To Improve SQL Connection
大家好我正在开发的应用程序将数据从 android 应用程序发送到 MS-SQL 服务器和 C# 中的主要 windows 软件,它从MS-SQl 服务器。
问题是程序需要花费太多时间来建立连接,尤其是在 android 应用程序中,有时它会使应用程序崩溃。
顺便说一句,在我们国家,互联网速度有时会变慢。
我搜索了一个解决方案,但在互联网上找不到,我想不出任何解决方法。
我看到 Viber、Watsapp、Massenger 等即使互联网速度很慢,它也会立即或同步发送数据。
所以我可以得到一些帮助和建议。
还有一个连接助手方法:
public 连接 connections(){
IP="www.examlple.net";
DB="DB_test";
DBUserName="admin";
DBPassword="*****";
StrictMode.ThreadPolicy policy= new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);
Connection connection=null;
String connectionURL=null;
try {
Class.forName("net.sourceforge.jtds.jdbc.Driver").newInstance();
connectionURL ="jdbc:jtds:sqlserver://"+IP+";DatabaseName="+DB+";integratedSecurity=true;user="+DBUserName+";password="+DBPassword;
connection = DriverManager.getConnection(connectionURL);
} catch (SQLException | ClassNotFoundException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InstantiationException e) {
e.printStackTrace();
}
return connection;
}
为了完整起见,使用 JTDS,您可以在连接字符串上同时设置 loginTimeout
和 socketTimeout
。参考这些here.
的备注
但正如其他人所说,您应该浏览某种网络 API。您真的要将 SQL 服务器公开到 Internet 吗?
此外,我刚刚注意到您指定了 integrated security=true
,并且您还指定了用户名和密码。你不能那样做。一个用于 windows auth(集成安全性),另一个用于 SQL auth(用户和密码)。您将必须使用用户名和密码。但是不要。不要这样做。浏览网页 API.
大家好我正在开发的应用程序将数据从 android 应用程序发送到 MS-SQL 服务器和 C# 中的主要 windows 软件,它从MS-SQl 服务器。 问题是程序需要花费太多时间来建立连接,尤其是在 android 应用程序中,有时它会使应用程序崩溃。 顺便说一句,在我们国家,互联网速度有时会变慢。 我搜索了一个解决方案,但在互联网上找不到,我想不出任何解决方法。 我看到 Viber、Watsapp、Massenger 等即使互联网速度很慢,它也会立即或同步发送数据。 所以我可以得到一些帮助和建议。 还有一个连接助手方法:
public 连接 connections(){
IP="www.examlple.net";
DB="DB_test";
DBUserName="admin";
DBPassword="*****";
StrictMode.ThreadPolicy policy= new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);
Connection connection=null;
String connectionURL=null;
try {
Class.forName("net.sourceforge.jtds.jdbc.Driver").newInstance();
connectionURL ="jdbc:jtds:sqlserver://"+IP+";DatabaseName="+DB+";integratedSecurity=true;user="+DBUserName+";password="+DBPassword;
connection = DriverManager.getConnection(connectionURL);
} catch (SQLException | ClassNotFoundException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InstantiationException e) {
e.printStackTrace();
}
return connection;
}
为了完整起见,使用 JTDS,您可以在连接字符串上同时设置 loginTimeout
和 socketTimeout
。参考这些here.
但正如其他人所说,您应该浏览某种网络 API。您真的要将 SQL 服务器公开到 Internet 吗?
此外,我刚刚注意到您指定了 integrated security=true
,并且您还指定了用户名和密码。你不能那样做。一个用于 windows auth(集成安全性),另一个用于 SQL auth(用户和密码)。您将必须使用用户名和密码。但是不要。不要这样做。浏览网页 API.