PreparedStatement는 Connection의 prepareStatement( )메소드의 return값으로 만들어져요.
즉, PreparedStatement은 Connection으로부터 만들어지는 거예요.
PreparedStatement의 setString( )메소드로 Connection의 prepareStatement( )메소드의 인자값인 sql문을 완성시켜요.
PreparedStatement의 executeUpdate( )메소드로 완성시킨 sql문을 실행시켜요.
한마디로 DBMS에서 CTR + SHIFT + F9 의 역할을 하는 거예요.
PreparedStatement의 executeUpdate( )메소드는 int type을 return하는데 이것은
아래의 사진이 return되는 것이예요.
즉, SQL의 결과로 인해 변화가 생긴 행의 갯수가 return되는 것이예요.
ResultSet은 PreparedStatement의 executeQuery( )메소드의 return값으로 만들어져요.
즉, ResultSet은 PreparedStatement로부터 만들어져요.
PreparedStatement의 executeQuery( )메소드는 Connection의 prepareStatement(sql)메소드의 인자값 SQL문을 실행시키고 그 결과를 return해요.
즉, PreparedStatement의 executeQuery( )메소드는 DBMS에서 SQL문을 CTRL + SHIFT + F9를 누르고 그 결과를 가져오는 거예요.
그 결과는 당연히 테이블형태예요.
그리고 ResultSet의 next( )메소드로 테이블형태의 결과에서 "그 다음" 레코드를 가리키도록 만들고 만약 그 때 레코드가 존재한다면 true를 return하고 레코드가 없다면 false를 return해요.
그리고 ResultSet의 next( )메소드를 통해 어떤 특정한 레코드를 가리키고 있을 때, 그 레코드에서 특정한 컬럼명을 사용해서 컬럼값을 가져올 수 있어요.
이것을 ResultSet의 getString( )메소드로 하는 거예요.
일단 전체 코드를 보세요
그래서 while(rs.next())의 의미는 select결과로 나온 테이블의 레코드 수만큼 반복하겠다는 의미예요.
ResultSet의 next( ) 메소드를 사용하여 레코드 하나를 가리키게 하고 있을 때, ResultSet의 getString( ) 메소드를 사용하여 "그 레코드"에서 컬럼명을 보내서 컬럼명의 "컬럼값"을 가져와요.