这是SpringJdbc documentation的14.2.5节中的示例。我没有得到他们试图通过这段代码说的话:
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;
}
}
为dataSource对象复制setter方法会阻止甚至编译此代码。他们实际上想说什么?
最佳答案
第二个setDataSource
方法是错误的,不应存在。否则,此代码说明如何在DAO中使用JdbcTemplate
。模板封装的数据库连接参与事务,您不必担心关闭游标或语句之类的数据库资源。