programing

명명된 매개 변수 JdbcTemplate 대 JdbcTemplate

elecom 2023. 8. 11. 21:31
반응형

명명된 매개 변수 JdbcTemplate 대 JdbcTemplate

저는 Spring 3.x 초보자이고, Spring DAO 지원을 배우고 있습니다.사이의 차이점을 알고 싶습니다.NamedParameterJdbcTemplate그리고.JdbcTemplate어떤 것이 성능 면에서 가장 좋은 것입니까?그리고 언제 갈 것인지.NamedParameterJdbcTemplate그리고 언제 갈 것인지.JdbcTemplate.

JdbcTemplate를 사용할 때 다음을 포함하는 SQL을 제공합니다.?SQL에 대체할 각 매개 변수에 대한 자리 표시자.코드에서 매개 변수를 할당할 때 배열에서 인수를 전달해야 하며 다음과 같이 배열에 나타나는 순서대로 사용됩니다.

Object[] args = new Object[] {"x", "y"};
String sql = "select * from foo where a = ? and b = ?";
jdbcTemplate.query(sql, args, resultSetExtractor);

따라서 실행되는 SQL은select * from foo where a = 'x' and b = 'y'.

NamedParameterJdbcTemplate를 사용하면 매개 변수 자리 표시자에 이름을 할당하고 지도를 전달하여 템플릿이 지도 이름을 자리 표시자와 일치시킬 수 있습니다.코드는 다음과 같습니다.

String sql = "select * from foo where a = :mya and b = :myb";
Map<String, Object> argMap = new HashMap<String, Object>();
argMap.put("mya", "x");
argMap.put("myb", "y");
namedParameterJdbcTemplate.query(sql, argMap, resultSetExtractor);

첫 번째 예제와 동일한 SQL을 생성합니다.

쿼리를 실행하는 것은 시간이 많이 걸리는 부분이므로 인수 삽입의 성능은 문제가 되지 않습니다.

이 개념은 이름으로 인수를 일치시키는 것이 특정 순서로 지정해야 하는 것보다 오류가 발생할 가능성이 적다는 것입니다.제가 작업한 실제 응용 프로그램에서는 일반적으로 DAO 코드와 별도의 파일에 SQL을 저장하며, 실수로 매개 변수를 잘못된 순서로 가져오는 것이 쉬울 수 있습니다.

측정 가능한 차이 성능은 없습니다.NamedParameterJdbcTemplate는 명명된 매개 변수를 사용할 수 있는 편리한 도구입니다.정말 궁금하다면 다운로드가 가능한 소스 코드를 살펴보세요.저는 소스 코드를 읽는 것이 포럼에서 얻는 답변에 대해 더 많은 자신감을 갖게 된다는 것을 알게 되었습니다.

언급URL : https://stackoverflow.com/questions/16359316/namedparameterjdbctemplate-vs-jdbctemplate

반응형