ResultSet 호출 getString NullPointException 문제 해결
2320 단어 exception
java.lang.NullPointerException
com.mysql.jdbc.ResultSetImpl.findColumn(ResultSetImpl.java:1059)
com.mysql.jdbc.ResultSetImpl.getInt(ResultSetImpl.java:2719)
org.apache.jsp.delete_jsp._jspService(delete_jsp.java:110)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:337)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
그러나 debug를 통해 ResultSet의 대상이 비어 있지 않다는 것을 발견하면 이 문제는 비교적 골치 아프고 인터넷에서도 많은 사람들이 질문을 하지만 대부분 문제의 근본 원인을 찾지 못한다.이 문제가 발생한 것은 여러 ResultSet이 하나의 Statement나 PrepareStatement 대상을 사용했기 때문입니다. 예를 들어 다음 코드:
Statement stat = conn.createStatement();
try {
ResultSet rs = stat.executeQuery("select * from BbsRecord where id=" + id);
rs.next();
sid = rs.getInt("sid");
ResultSet rss = stat.executeQuery("select * from bbsrecord where sid=" + sid);
rss.last();
if (rss.getRow() == 1) {
if (rs.getInt("root") == 0) { //
stat.execute("update bbsrecord set leaf = 1 where id=" + sid);
stat.execute("delete from bbsrecord where id =" + id);
if (rs.getInt("leaf") == 0) {
delete(conn,id);
}
}
} else {
stat.execute("delete from bbsrecord where id =" + id);
if (rs.getInt("leaf") == 0) {
delete(conn, id);
}
}
rs.close();
rss.close();
} catch (SQLException e) {
System.out.println("sql ");
} finally {
stat.close();
conn.close();
}
상기 코드에서 여섯 번째 줄과 세 번째 줄은 같은 Statement를 사용하기 때문에 아홉 번째 줄에서 나온 Null PointerException 이상을 초래하였다
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Exception Class에서 에러 코드 해석 ~초기초편~직장에서 C# 프로젝트가 내뿜는 오류 코드를 구문 분석하고 오류의 위치를 확인하기 위해 Exception class를 활용할 수 있었습니다. 지금까지 Exception Class 에 대해서 별로 파악할 수 없었기 때...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.