【发布时间】:2020-06-05 12:13:52
【问题描述】:
所以我使用 JDBC 连接到本地主机 MySQL 服务器,当我编写 try 块以连接服务器并发送查询时,我收到 'Cannot find symbol' 错误。
我知道这是因为对象是在 try 条件内初始化的,我试图从 finally 条件中使用它,但我也无法在 try 块之外初始化它,因为我收到一条错误消息 'The try-with-resources resource must be a variable declaration or an expression denoting to a final or effectively final variable'
我试图编写代码的总体思路是能够在 finally 块中关闭与数据库的连接,无论是否引发异常。有问题的代码如下(突出显示错误的行):
public static String returnEmployeeName(String ID) throws ClassNotFoundException, SQLException {
HashMap<String, String> infoHR = connectionInfoHR();
String query = "SELECT first_name FROM employees WHERE employee_id = '" + ID + "'";
Class.forName("com.mysql.cj.jdbc.Driver");
Statement st;
ResultSet rs;
Connection con;
try (con = DriverManager.getConnection(infoHR.get("url"), infoHR.get("uname"), infoHR.get("pass"))) {
//Error on line above relating to not initialising the object within the statement
st = con.createStatement();
rs = st.executeQuery(query);
rs.next();
return rs.getString("first_name");
} finally {
st.close();
con.close();
}
}
提前为任何可以提供的帮助干杯:)
【问题讨论】: