2014-12-23 3 views
0

다음은 14.2.5 섹션의 예 (SpringJdbc documentation)입니다. 나는 그들이이 코드에 의해 말을 뭘하려하지 않았다 : 데이터 소스 객체의 setter 메소드의스프링 이해 JDBCTemplate 코드 예

import javax.sql.DataSource; 
import org.springframework.jdbc.core.JdbcTemplate; 

public class RunAQuery { 

    private JdbcTemplate jdbcTemplate; 

    public void setDataSource(DataSource dataSource) { 
     this.jdbcTemplate = new JdbcTemplate(dataSource); 
    } 

    public int getCount() { 
     return this.jdbcTemplate.queryForObject("select count(*) from mytable", Integer.class); 
    } 

    public String getName() { 
     return this.jdbcTemplate.queryForObject("select name from mytable", String.class); 
    } 

    public void setDataSource(DataSource dataSource) { 
     this.dataSource = dataSource; 
    } 
} 

중복이 코드도 컴파일 할 수 없습니다. 그들은 실제로 무엇을 말하고 싶습니까?

+1

문서의 버그라고 생각합니다. – user1516873

답변

2

두 번째 setDataSource 메서드는 오류이므로 거기에 있으면 안됩니다. 그렇지 않으면이 코드는 JdbcTemplate이 DAO에서 어떻게 사용될 수 있는지 보여줍니다. 템플릿에 의해 캡슐화 된 DB 연결은 트랜잭션에 참여하므로 커서 나 명령문과 같은 DB 리소스를 닫을 필요가 없습니다.