jsp 오류 질문이요(Illegal operation on empty result set.)
조회수 3838회
jsp 실행을 시키면
Illegal operation on empty result set. 라고 오류가 나오는데 머가 문제인지 모르겠습니다.
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="UTF-8"%>
<%@page import="java.io.PrintWriter" %>
<%@page import="user.UserDAO" %>
<%@page import="java.sql.Timestamp" %>
<%@ page import ="java.sql.DriverManager"%>
<%@ page import ="java.sql.SQLException"%>
<%@ page import ="java.sql.ResultSet"%>
<%@ page import ="java.sql.PreparedStatement"%>
<%@ page import ="java.sql.Connection"%>
<!DOCTYPE html> 웹사이트 <!-- 부트스트랩 css 추가하기 -->
<!-- 커스텀 css 추가하기-->
<link rel="stylesheet" href="./css/custom.css">
</head>
<body>
<nav class = "navbar navbar-expand-lg navbar-light bg-light">
<a class="navbar-brand" href="index.jsp">DB 연동을 위한 웹 페이지</a>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbar">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbar">
<ul class="navbar-nav mr-auto">
<li class="nav-item active">
<a class="nav-link" href="index.jsp">메인</a>
</li>
<li class="nav-item active">
<a class="nav-link" href="boardList.jsp">게시판</a>
</li>
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" id="dropdown" data-toggle="dropdown">
회원관리
</a>
<div class="dropdown-menu" aria-labelledby="dropdown">
<a class="dropdown-item"href="userLogin.jsp">로그인</a>
<a class="dropdown-item"href="userRegister.jsp">회원가입</a>
<a class="dropdown-item"href="userLogout.jsp">로그아웃</a>
검색
<!-- 제이쿼리 자바스크립트 추가하-->
<script src="./js/jquery.min.js"></script>
<!--Popper 자바스크립트 추가하기 -->
<script src="./js/popper.min.js"></script>
<!-- 부트스트랩 자바스크립트 추가하기-->
<script src="./js/bootstrap.min.js"></script>
<%
request.setCharacterEncoding("UTF-8");
String name = request.getParameter("name");
Connection con = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
try {
String dbURL = "jdbc:mysql://localhost:3308/test01";
String dbID ="root";
String dbPassword = "jyyoo";
Class.forName("com.mysql.jdbc.Driver");
con = DriverManager.getConnection(dbURL, dbID, dbPassword);
String sql = "select * from test where name =?";
pstmt = con.prepareStatement(sql);
pstmt.setString(1, name);
rs = pstmt.executeQuery();
String story = rs.getString("story");
%>
<form name ='frm1' method ='post' action='updateOk.jsp'>
<table>
<tr>
<td>파일명</td>
<td><%=name %><input type = "hidden" name="name" value="<%=name%>"/></td>
</tr>
<tr>
<td>내용</td>
<td><input type = "text" name="story" value="<%=story%>"/></td>
</tr>
<tr>
<td colspan="2" align="center">
<input type = "button" name="btn1" value="저장" onclick="javascipt:frm1.submit();"/>
<input type = "button" name="btn2" value="목록" onclick="javascipt:location.href='boardList.jsp';"/>
</td>
</tr>
</table>
</form>
<%
}catch(SQLException se) {
System.out.println(se.getMessage());
}finally{
try{
if(rs!=null) rs.close();
if(pstmt!=null) pstmt.close();
if(con!=null) con.close();
}catch(SQLException se) {
System.out.println(se.getMessage());
}
}
%>
<script type ="text/javascript">
function update() {
document.frm1.submit();
}
function list(){
location.href="boardList.jsp";
}
</script>
-
(•́ ✖ •̀)
알 수 없는 사용자
1 답변
-
result set 이 비어있나봅니다. rs 를 찍어보세요.
pstmt = con.prepareStatement(sql); pstmt.setString(1, name); rs = pstmt.executeQuery(); //result set 확인 - 일반적으로 이렇게 유효성 체크를 합니다. if(rs.next()) { String story = rs.getString("story"); } 또는 while(rs.next()) { String story = rs.getString("story"); }
- 오류가 나는데요.. 밑에다가 일부 올려놓겠습니다. 확인 좀 해주세요. 알 수 없는 사용자 2018.3.15 09:10
- 해결했습니다. 알 수 없는 사용자 2018.3.15 13:29
댓글 입력