是从数据库中获取记录并将其显示给控制台的代码。但我想知道jdbcTemplate.query(sql, RowMapper rm)
方法如何像 ResultSet 在mapRow()
函数中实例化一样,以及此方法的第二参数的用法是什么。任何人都可以解释jdbcTemplate.query(sql, RowMapper rm)
方法的工作原理吗?
假设已经提供了 config.xml , Employee bean类和 EmployeeDAO接口,以下是为 EmployeeDaoImpl类提供的代码< / strong>
存储库类
@Repository(value="empDAO")
public class EmployeeDAOImpl implements EmployeeDAO{
private JdbcTemplate jdbcTemplate;
@Autowired
public void setDs(DataSource ds) {
this.jdbcTemplate = new JdbcTemplate(ds);
}
@Override
public List<Employee> selectAllEmployee() {
String sql = "select * from Employee";
List<Employee> listOfEmployee = new ArrayList<Employee>();
listOfEmployee = jdbcTemplate.query(sql, new RowMapper<Employee>(){
public Employee mapRow(ResultSet rs, int rowNum) throws SQLException{
Employee employee = new Employee();
employee.setEmployeeId(rs.getInt("employeeId"));
employee.setName(rs.getString("name"));
employee.setSalary(rs.getDouble("salary"));
return employee;
}
});
return listOfEmployee;
}
}
答案 0 :(得分:0)
一般来说,jdbcTemplate将从您的SQL创建一个预准备语句,执行该语句,返回结果集并使用RowMapper将每一行映射到Java对象。
让我们引用Spring的文档:http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/jdbc/core/RowMapper.html