gpt4 book ai didi

java - SQL try catch 永远无法捕获(实现超时?)

转载 作者:行者123 更新时间:2023-12-01 12:37:57 25 4
gpt4 key购买 nike

在我的代码中,我在 SQL 连接部分有一个 try catch。我希望用户能够自己输入Sql地址和端口号。如果用户输入错误的 sql 地址或端口,应用程序只会在 try 中挂起,而不会真正停止并捕获。有小费吗?我想编程尝试 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());
}
}

最佳答案

也许您应该通过调用 DriverManager#setLoginTimeout(...) 自行添加连接超时之前尝试连接。

本着同样的精神,请注意有 Statement#setQueryTimeout(...)可以在任何类型的 SQL 语句上调用(可以是 PreparedStatementCallableStatement)。

关于java - SQL try catch 永远无法捕获(实现超时?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25401610/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com