Tu je príklad zo sekcie 14.2.5 Dokumentácia SpringJdbc, Ja som nedostal to, čo sa snažili povedať týmto kódom:
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;
}
}
Duplikácia metódy setter pre objekt dataSource bráni tomu, aby bol tento kód dokonca skompilovaný. Čo vlastne chceli povedať?
odpovede:
2 pre odpoveď č. 1Druhy setDataSource
metóda je chyba a nemala by tam byť. V opačnom prípade tento kód ukazuje, ako JdbcTemplate
môže byť použitý v DAO. Spojenia DB zapuzdrené šablónou sa zúčastňujú transakcií a nemusíte sa starať o uzatváranie prostriedkov DB, ako sú kurzory alebo príkazy.