以下是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方法可以防止编译此代码。他们真的想说什么?
答案 0 :(得分:2)
第二个setDataSource
方法是错误的,不应该存在。否则,此代码显示如何在DAO中使用JdbcTemplate
。模板封装的数据库连接参与事务处理,您不必关心关闭数据库资源(如游标或语句)。