在我的代码中,我在SQL连接部分尝试了一下。我希望用户能够自己输入Sql地址和端口号。如果用户输入了错误的sql地址或端口,那么应用程序只会在try中挂起,并且永远不会实际停止并进入catch。有小费吗?我想编程尝试X秒,然后以“输入错误的连接信息”之类的错误消息结束。
这是代码:
System.out.print("Connecting");
try {
String myDriver = "org.gjt.mm.mysql.Driver";
String myUrl = "jdbc:mysql://"+mySqlAdress+":"+myPort+"/mysql";
Class.forName(myDriver);
Connection conn = DriverManager.getConnection(myUrl, "root", "1234");
String SQL = "SELECT asd,val FROM test";
ResultSet rs = conn.createStatement().executeQuery(SQL);
while (rs.next()) {
//do something
}
}
catch (Exception e)
{
System.err.println("Got an exception! ");
System.err.println(e.getMessage());
}
}
答案 0 :(得分:1)
也许您应该在尝试连接之前通过调用DriverManager#setLoginTimeout(...)
来自己添加连接超时。
本着同样的精神,请注意可以在任何类型的SQL语句(无论是PreparedStatement
还是CallableStatement
)上调用Statement#setQueryTimeout(...)
。
答案 1 :(得分:0)
你能试试吗;
Class.forName("com.mysql.jdbc.Driver");
http://dev.mysql.com/downloads/connector/j/
connect = DriverManager
.getConnection("jdbc:mysql://localhost/youradress?"
+ "user=youruser&password=yourpassword");