RowMapper有多个类

时间:2012-10-31 19:33:37

标签: mysql spring-mvc jdbctemplate spring-data

我定义了两个服务:

Class cars
 model, year, mileage

Class driver
 name, age, licExpDate

我在他们自己的服务中提出了各自的查询,即car中与汽车相关的查询以及与driver中的司机相关的查询。此外,我在每项服务中都有RowMapper

class CarRowMapper implements RowMapper<Car>{
    @Override
    public Car mapRow(ResultSet rs, int rowNum) throws SQLException {
        Car car = new Car();
                car.setModel(rs.getString("model"));
        return car;
    }       
}

问题 现在我需要导出一些数据,我需要在一个查询中编写一个查询,其中包含cardriver的列:

例如:

SELECT A.CAR B.NAME FROM CAR A, DRIVER B WHERE A.ID = B.ID

那么,现在我如何在RowMapper中有多个类,以便我可以编写这样的方法:

public List<Cars> carsWithDrivers() {
  String query "...";
  return service.getJdbcTemplate().query(query, Row_mapper_here?));
}

1 个答案:

答案 0 :(得分:0)

假设您要使用实现RowMapper的类是MapCarWithDriver。现在在其中,将覆盖mapRow(ResultSet,int rowNum)方法。这将为执行的Query的resultSet的每一行调用。所以现在你可以通过

创建自己的Driver对象了 Driver driver1 = new Driver();
driver1.setName(rset.getString("NAME");
Car car1= new Car(driver1);
car1.setModel(rset.getString("CAR");