나는 스프링 문서를보고 있었다. Class JdbcTemplate 페이지에서 나는이 두 가지 방법이 똑같은 일을하고있는 것으로 보이기 때문에 약간 혼란스러워했습니다. 두 가지 목적은 SQL 결과에서 형성된 오브젝트를 리턴하는 것입니다. SQL 주어진JdbcTemplate에서 두 개의 queryForObject 메소드
<T> T queryForObject(java.lang.String sql,
java.lang.Object[] args,
RowMapper<T> rowMapper)
쿼리는 RowMapper를 통해 자바 객체에 대한 하나의 결과 행을 매핑 쿼리에 바인딩 SQL에서 준비된 명령문과 인수 목록을 만들 수 있습니다. SQL 주어진
<T> T queryForObject(java.lang.String sql,
java.lang.Object[] args,
java.lang.Class<T> requiredType)
쿼리 결과 객체를 기대 쿼리에 바인딩 SQL에서 준비된 명령문과 인수 목록을 만들 수 있습니다.
질문
그들은 내가 이해하는 것과 같은 목적을 갖고 있습니까?
그렇다면 왜 이러한 두 가지 방법이 필요합니까?
그렇지 않은 경우 그 차이점은 무엇입니까? 각각에 대한 일반적인 시나리오가 있습니까?
대답
그래서 답변을 얻었습니다.
필수 유형의 메소드는 SQL 결과에서만 구성된 오브젝트를 리턴하기위한 것입니다.
에 RowMapper와 방법은 SQL 결과로 형성된 객체를 반환 1. 우리를 허용하고 우리는 할 수있는 개체를 결과에 할당하기 전에 복잡한 검증 또는 서식을하고 결과 2에서 클래스의 모든 변수가 필요하지 않습니다 SQL보다 자바에서 쉽게 할 수있다
Raghu 감사합니다.
그래서 rowMapper를 사용하는 두 가지 측면이 있습니다. 1. 우리는 SQL 결과에 모든 변수를 가질 필요가 없습니다. 2. 우리는 추가 작업을 할 수 있습니다. –
예, SQL에서보다 java에서 쉽게 수행 할 수있는 결과 개체에 할당하기 전에 복잡한 유효성 검사 또는 서식을 수행해야 할 수도 있습니다. – Raghu
나는 그것을 얻었다, 고마워. –