1
我有一個大學任務,並且我被要求顯示來自訪問數據庫的植物列表,然後還包括一個搜索功能來過濾掉這些結果。多個結果集
我有植物列表顯示足夠簡單。但是,我無法使搜索工作,所以我嘗試了另一個SQL查詢,然後我想出了這個錯誤。我已經做了一些閱讀和搜索,我似乎無法找到我的問題的答案。
javax.servlet.ServletException:值java.sql.SQLException:ResultSet的關閉
這裏是我的代碼:
<%@page import="java.sql.*"%>
<%@page contentType="text/html"%>
<%
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection cn = DriverManager.getConnection("jdbc:odbc:PlantsDB", "", "");
Statement st = cn.createStatement();
ResultSet r = st.executeQuery("SELECT * FROM Plant;");
String html = "";
String id;
while (r.next()) {
id = Integer.toString(r.getInt("PlantID"));
html += "<a href='Plant" + id + ".jsp" + "'>";
html += r.getString("EnglishName") + "-" + r.getString("ScientificName")
+ "<a><br>";
}
r.close();
cn.close();
if (request.getParameter("sBtn") != null) {
Connection sn = DriverManager.getConnection("jdbc:odbc:PlantsDB", "", "");
//String search = request.getParameter(sQuery);
//request.getSession().setAttribute("search",search);
Statement sq = sn.createStatement();
ResultSet sqr = sq.executeQuery("SELECT * FROM Plant WHERE EnglishName LIKE
'%" + "Co" + "%'");
while (sqr.next()) {
id = Integer.toString(r.getInt("PlantID"));
html += "<a href='Plant" + id + ".jsp" + "'>";
html += r.getString("EnglishName") + "-" + r.getString("ScientificName")
+ "<a><br>";
}
sn.close();
}
%>
<!DOCTYPE html>
<html>
<head><title></title></head>
<body bgcolor="#A8A8A8">
<%=html%>
<form method="POST">
<input type="text" id="search" name="sQuery">
<input type="submit" id="sBtn" name="sBtn" value="Search" >
</form>
</body>
</html>
我將不勝感激,如果有人可能可以解釋的錯誤好一點,並可能指向正確的方向。我很困惑,爲什麼當我使用完全不同的結果集時,結果集是關閉的?
我完全錯過了,儘管它仍然拋出了同樣的錯誤。我不知道這些關於ResultSet – user3119946
@ user3119946它是一個'ResultSet'不重要;一個參考是一個參考。不過,我不相信你會在未關閉的結果集上得到結果集關閉異常。 –
好的,無論如何,我的解決方案是解決問題的好方法嗎?或者你會以不同的方式去改變它? – user3119946