Некоторые сомнения по поводу использования RowMapper в JDBC в приложении Spring Framework

Я изучаю, как выполнить запрос к базе данных, используя JDBC в Spring Framework.

Я следую этому уроку:http://www.tutorialspoint.com/spring/spring_jdbc_example.htm

В этом уроке я определяюStudentDAO интерфейс, который определяет только метод CRUD, который я хочу.

Затем определяетсяУченик класс, который является сущностью, которую я хочу сохранить в таблице базы данных Student.

Затем определяетсяStudentMapper класс, который является конкретной реализациейRowMapper интерфейс, который в этом случае используется для отображения конкретной записи вResultSet (возвращается запросом)Ученик объект.

Тогда у меня естьStudentJDBCTemplate что представляет собой реализацию моегоStudentDAO интерфейс, в этом классе я реализую метод CRUD, который был определен в интерфейсе.

Хорошо, и теперь у меня есть сомнения по поводу того, какStudentMapper классная работа: в этомStudentJDBCTemplate В этом классе определен метод, который возвращает список всех записей в таблице базы данных Student:

   public List listStudents() {
      String SQL = "select * from Student";
      List  students = jdbcTemplateObject.query(SQL, 
                                new StudentMapper());
      return students;
   }

Как видите, этот метод возвращает объект List of Student и работает следующим образом:

первое, что он делает, это определяет запрос, которыйвернуть всю запись в таблицу базы данных ученика в строке SQL.

Затем этот запрос выполняется вызовом метода запроса для объекта jdbcTemplateObject (т.е.JdbcTemplate Весенний класс **

Этот метод принимает два параметра: строку SQL (которая содержит запрос SQL, который должен быть выполнен) и новыйStudentMapper объект, который принимаетResultSet объект, возвращенный запросом, и сопоставьте его 'запись о новом объекте Student

Читая здесь:http://static.springsource.org/spring/docs/current/javadoc-api/org/springframework/jdbc/core/JdbcTemplate.html говорят, что:Выполните запрос с заданным статическим SQL, сопоставив каждую строку с объектом Java через RowMapper.

Мои сомнения связаны с тем, что мойStudentMapper сопоставить запись ResultSet с объектом Student, используяmapRow () метод, это код:

package com.tutorialspoint;

import java.sql.ResultSet;
import java.sql.SQLException;
import org.springframework.jdbc.core.RowMapper;

public class StudentMapper implements RowMapper {
   public Student mapRow(ResultSet rs, int rowNum) throws SQLException {
      Student student = new Student();
      student.setId(rs.getInt("id"));
      student.setName(rs.getString("name"));
      student.setAge(rs.getInt("age"));
      return student;
   }
}

Итак, кто это называетmapRow метод? это вызывается автоматически Spring Framework? (потому что в этом примере никогда не вызывается вручную ...)

Tnx

Andrea

Затем этот запрос выполняется вызовом метода запроса для объекта jdbcTemplateObject (т.е.JdbcTemplate Весенний класс **

Ответы на вопрос(4)

Ваш ответ на вопрос