这是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。模板封装的数据库连接参与事务,您不必担心关闭游标或语句之类的数据库资源。

10-05 22:54
查看更多