나는 지금까지 NamedParameterJdbcTemplate이 JdbcTemplate과 동일한 기능을 제공하는 것처럼 보였습니다. 게다가 명명 된 매개 변수를 사용할 수있게되었습니다.Spring 프레임 워크에서 NamedParameterJdbcTemplate을 통해 JdbcTemplate을 사용하면 어떤 이점이 있습니까?
그래서 NamedParameterJdbcTemplate을 항상 사용할 수 있다면 JdbcTemplate을 사용하는 것이 좋습니다. 처음에는 DAO 클래스에서 명명 된 매개 변수를 사용하지 않았지만 어떤 이유로 인해 그것들을 사용하면 전체 DAO 클래스를 조정할 필요가 없습니다.
두 번째 질문은 왜 처음에이 클래스를 만들었습니까? 명명 된 매개 변수 기능을 제공하는 JdbcTemplate을 하나만 가지는 것이 더 좋지 않습니까?
JDBC (AFAIK)는 명명 된 매개 변수도 지원하지 않으며 와일드 카드/인덱싱 된 매개 변수 만 지원합니다. 스프링'NamedParameterJdbcTemplate'은 명명 된 매개 변수를 와일드 카드로 대체하고 그것을'String'으로 대체함으로써 수행합니다. 그래서'Collection'을 사용하고'in (: collection)'과 같은 것을 사용할 때. 그것은': collection'을'?'의 정확한 양으로 대체 할 것입니다. 따라서 NamedParameterJdbcTemplate을 사용하는 데 오버 헤드가 있으며 매개 변수의 수에 따라 중요 할 수도 있습니다. –
당신이 말한 것을 기반으로 해답 주셔서 감사합니다. "명명 된 매개 변수를 지원하는 데 약간의 오버 헤드가 있습니다. 일반적으로 후드에서 준비된 문을 사용하는 것이 좋습니다. 정규 오래된 문" JdbcTemplate에서 인덱싱 된 매개 변수를 사용할 수 있다는 것을 알고 있습니다. 예를 들어,이'jdbcTemplate.queryForObject ("id =?", 새로운 Object [] {id}, String.class);'서클에서 이름을 선택하면', JdbcTemplate 후드 밑에서도? –
다른 프레임 워크를 생각하고있었습니다. 너무 많은 언어와 환경에서 일하는 위험. 답변을 업데이트하는 중 ... –