-
Exception in thread "main" java.sql.SQLException: 마지막 행 다음의 결과 집합JDBC 2022. 1. 30. 23:11
**유튜브 뉴렉쳐님의 강의를 들으면서 공부하고 정리한 내용입니다.
가져오고자 하는 데이터가 잘 가져와졌는지 확인 하려고 했더니 에러가 발생하였다.
마지막행의 다음이라고 하는 것은 next로 호출 할 상황이 아니라는 것이다. 데이터가 없다는 것이다.
rs.next에 마우스를 가져다대보면 next를 가져왔을때 true 아닐 경우 false를 가져올 수 있다고 뜨는데
에러가 발생하지 않기 위해서는 데이터를 가져온게 없을 경우에는
String url = "jdbc:oracle:thin:@localhost:1521/xepdb1"; String sql = "SELECT * FROM NOTICE"; Class.forName("oracle.jdbc.driver.OracleDriver"); Connection con = DriverManager.getConnection(url,"sys as sysdba", "Ew170916!!"); Statement st = con. createStatement(); ResultSet rs = st.executeQuery(sql); rs.next(); //다음으로 넘어가기 String title = rs.getString("TITLE"); //title이라는 컬럼명을 조회 System.out.println(title); //제대로 가져와지는지 출력문으로 확인해보기 rs.close(); st.close(); con.close();기존에 이 코드에서 if문을 추가 해 준다.
String url = "jdbc:oracle:thin:@localhost:1521/xepdb1"; String sql = "SELECT * FROM NOTICE"; Class.forName("oracle.jdbc.driver.OracleDriver"); Connection con = DriverManager.getConnection(url,"sys as sysdba", "Ew170916!!"); Statement st = con. createStatement(); ResultSet rs = st.executeQuery(sql); if(rs.next()) { //다음으로 넘어가기 String title = rs.getString("TITLE"); //title이라는 컬럼명을 조회 System.out.println(title); //제대로 가져와지는지 출력문으로 확인해보기 } rs.close(); st.close(); con.close();실행 해 보면

아무것도 뜨지 않는다. 당연함. 데이터가 없기 때문이다.
데이터를 넣어보자
CREATE TABLE NOTICE ( ID NUMBER ,TITLE NVARCHAR2(100) ,WRITER_ID NVARCHAR2(50) ,CONTENT CLOB ,REGDATE TIMESTAMP ,HIT NUMBER ,FILES NVARCHAR2(1000) );아까 이 순서대로 테이블을 작성 해 주었는데 데이터를 넣을때도 이 순서에 맞게 넣어줘야 한다.

커밋까지 꼭 해줘야한다.
그럼 다시 이클립스로 넘어와서 실행을 해 보자

우리가 입력한 제목이 잘 뜨는 것을 확인 할 수 있다.
'JDBC' 카테고리의 다른 글
레코드의 모든 컬럼 출력하기 (0) 2022.01.31 쿼리 실행해보기 (0) 2022.01.30 JDBC 기본코드 (0) 2022.01.26 JDBC Driver 준비하기 (0) 2022.01.26 JDBC란? (0) 2022.01.26