본문 바로가기

Spring&IntelliJ

jdbcTemplate의 RowMapper<T>인터페이스에 대해서!

https://u-it.tistory.com/32

 

query( )메서드를 실행하면 첫번째 인자로 받은 SQL쿼리 문이 실행되고 그 결과(ResultSet과 갯수(rowNum))가 2번째 인자인 메서드를 호출했을때 생성되는 객체의 메서드인 mapRow의 인자로 전달된다(memberRowMapper()메서드가 실행된다는 것은 mapRow메서드를 구현한 익명객체가 생성된다는 말임. 다시말해 이 메서드는 익명클래스 RowMapper<T>를 구현하는 익명 클래스의 객체를 생성한다는 뜻임). ResultSet과 쿼리에 결과에 해당되는 데이터의 갯수를 나타내는 정보를 이용하여 그 결과는 컬랙션클래스로 반환된다. query의 3번째인자는 1번째 SQL쿼리의 ? 자리에 바인딩된다. 위에서는 name이 알아보기 쉽게 사용되었다.

⇒ mapRow? 말그대로 각각의 행을 반환되는 결과(Member)와 mapping시키는 함수. 좋은 이름이다.

 

 

각각의 행을 여러줄로 구성된 결과 객체(ResultSet)와 대응시키는 역할을 하는 것이 RowMapper인터페이스가 하는 일이다. 보통 RowMapper는 JdbcTemplate의 쿼리 메서드나 stored procedures를 위해 사용된다.