대학 과제가 있으며 액세스 데이터베이스에서 식물 목록을 표시하도록 요청한 다음 이러한 결과를 필터링하는 검색 기능을 포함하도록 요청 받았습니다.Multiple ResultSets
식물 목록이 쉽게 표시됩니다. 그러나 검색 기능을 사용할 수 없으므로 다른 SQL 쿼리로 시도했지만이 오류가 발생했습니다. 나는 독서와 검색을 해왔고 내 질문에 대한 답을 찾지 못하는 것 같습니다.
을 폐쇄하는 것은 내 코드입니다 : 누군가가 가능성이 오류를 설명 할 수있는 경우이 javax.servlet.ServletException : java.sql.SQLException의 : 결과 집합 여기
<%@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