[JSP] | [DAO] | PreparedStatement가 만들어지는 과정과 하는 일과 ResultSet에 들어가는 값

0
post-thumbnail

PreparedStatement

  • 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되는 것이예요.

  • 일단 전체 코드를 보세요

  • Connectin의 prepareStatement( )메소드의 return값을 PreparedStatement type 참조변수 ps에 넣어요.
    prepareStatement( )메소드의 인자값은 SQL문이예요.

  • 그리고 PreparedStatement의 setString( )메소드로 Connectin의 prepareStatement( )메소드의 인자값인 SQL문의 와일드카드에 값을 넣어줌으로써 SQL문을 완성시켜줘요.
    PreparedStatement의 setString( )메소드의 인자값은 몇번째와일드카드인지 index와 무슨 값을 넣어줄지 value예요.

  • 그리고 PreparedStatement의 executeUpdate( )메소드를 실행하면 DBMS에서 CTRL + SHIFT + F9 를 누른 것과 같은 결과가 나와요. 실제로 insert가 되는 것이고, '영향받은 행'의 결과가 return돼요.

ResultSet

  • 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( )메소드로 하는 거예요.

  • 일단 전체 코드를 보세요

  • rs = ps.executeQuery( );
    PreparedStatement의 executeQuery( )메소드는 DBMS에서 SQL문을 CTRL + SHIFT + F9를 누르고 그 결과를 가져오는 거예요.

  • ResultSet의 next( ) 메소드

  • 그래서 while(rs.next())의 의미는 select결과로 나온 테이블의 레코드 수만큼 반복하겠다는 의미예요.

  • ResultSet의 next( ) 메소드를 사용하여 레코드 하나를 가리키게 하고 있을 때, ResultSet의 getString( ) 메소드를 사용하여 "그 레코드"에서 컬럼명을 보내서 컬럼명의 "컬럼값"을 가져와요.

PreparedStatement 는 Connection 이 만들어주고,

ResultSet 은 PreparedStatement 가 만들어준다.

profile
몇 번을 넘어져도 앞으로 계속 나아가자

0개의 댓글