[KSUG] SimpleJdbcTemplate vs JdbcTemplate

554 views
Skip to first unread message

Hyunsok Oh

unread,
Jul 13, 2011, 5:28:52 AM7/13/11
to ks...@googlegroups.com
토비님 책을 보다 보니, SimpleJdbcTemplate를 더 많이 쓴다고 하던데,
스프링 3.1버전 자바독을 보니, SimpleJdbcTemplate 는 deprecated라고 나오네요.
 
다시  JdbcTemplate과 NamedParameterJdbcTemplate 으로 돌아가게 된 이유가 뭘까요?
뒤져보고 비교해보면 되겠지만, 혹시 잘 알고 계시는 분 있으시면 알려주시면 감사하겠습니다.
 

Hyunsok Oh

unread,
Jul 13, 2011, 11:04:44 AM7/13/11
to ks...@googlegroups.com
자답이네요. ^^;;
 
구글링해보니, 스프링 JIRA에 관련 이슈가 등록되어 있더군요. Thomas Risberg(스프링 개발자 중 하나)가
관련 이슈에 답을 달아둔게 있더군요.
 
정리하면, SimpleJdbcTemplate는 자바5 syntax sugar로 가변인자와 자동박싱 추가에 맞춰  
전형적인 사용시 JDBC를 편하게 쓸수 있게 작성한  클래스이고, NamedParameterJdbcTemplate는
그 후 인자이름을 쿼리에 사용하도록 개발했고, 스프링 3이 되면서 중복을 제거하기 위해
SimpleJdbcTemplate는 deprecate로 처리한게 되겠네요.
 
이것저것 추적해 보니, JdbcTemplate는 2001년 부터 사용해온
클래스네요. 히스토리를 보니 2.x까지는 SimpleJdbcTemplate에서만 가변인자를 사용하고,
JdbcTemplate에는 가변인자를 사용한 메소드가 없었습니다. 3.0으로 가면서는 JdbcTemplate에도
가변인자를 사용하는 메소드를 추가했고, 그러고 나서 보니, SimpleJdbcTemplate과 겹치는 것이
많아진 것 같습니다.
 
 
---------------- 아래는 전문...

Hi Adrian,

Yes to both. NamedParameterJdbcTemplate is remaining and should be used for named parameter use.

If you don't want to create two templates you can always call getJdbcOperations() on the NamedParameterJdbcTemplate to get access to the regular JdbcOperations interface of the JdbcTemplate.

The SimpleJdbcTemplate was initially added to provide some Java 5 syntax sugar and we later added the named parameter support. There really is no need for three different template implementations any longer.

So, use the JdbcTemplate unless you need the named parameter support in which case you should use the NamedParameterJdbcTemplate.

-Thomas

 
2011/7/13 Hyunsok Oh <ensh...@gmail.com>

Joshua Jeong

unread,
Jul 13, 2011, 8:15:22 PM7/13/11
to ks...@googlegroups.com
고맙습니다.

2011/7/14 Hyunsok Oh <ensh...@gmail.com>
--
Google 그룹스 'Korea Spring User Group' 그룹에 가입했으므로 본 메일이 전송되었습니다.
이 그룹에 게시하려면 ks...@googlegroups.com(으)로 이메일을 보내세요.
그룹에서 탈퇴하려면 ksug+uns...@googlegroups.com로 이메일을 보내주세요.
더 많은 옵션을 보려면 http://groups.google.com/group/ksug?hl=ko에서 그룹을 방문하세요.

김정수

unread,
Jul 13, 2011, 8:29:28 PM7/13/11
to Korea Spring User Group
아 그렇군요.
감사합니다~~

On 7월13일, 오후6시28분, Hyunsok Oh <ensha...@gmail.com> wrote:
> 토비님 책을 보다 보니, SimpleJdbcTemplate를 더 많이 쓴다고 하던데,
> 스프링 3.1버전 자바독을 보니, SimpleJdbcTemplate 는 deprecated라고 나오네요.
>

> 다시 * JdbcTemplate과 NamedParameterJdbcTemplate 으로 돌아가게 된 이유가 뭘까요?*
> *뒤져보고 비교해보면 되겠지만, 혹시 잘 알고 계시는 분 있으시면 알려주시면 감사하겠습니다.*
> **

Joshua Jeong

unread,
Jul 13, 2011, 8:32:43 PM7/13/11
to ks...@googlegroups.com
고맙습니다.
Syntax Sugar 가 뭔지 몰라서 찾아보니 재미있군요. 
Syntax salt와 Syntax saccharin란 단어도 있네요.
원문을 보면, '.. you need the named parameter support ..'라는 부분이 있는데,
named 파라미터를 사용해야하는 경우는 언제일까요?




2011/7/14 Hyunsok Oh <ensh...@gmail.com>

백기선

unread,
Jul 13, 2011, 9:29:03 PM7/13/11
to ks...@googlegroups.com
param이 많아서 인덱스 숫자 가지고는 영.. 가독성이 떨어지고 순서가 햇갈릴때요.

2011년 7월 14일 오전 9:32, Joshua Jeong <sun...@gmail.com>님의 말:



--
좋은 하루 되세요~

Joshua Jeong

unread,
Jul 13, 2011, 10:25:52 PM7/13/11
to ks...@googlegroups.com
아! 그렇군요. 
고맙습니당 :)

2011/7/14 백기선 <whites...@gmail.com>
Reply all
Reply to author
Forward
0 new messages