mysql - 具有多个类的 RowMapper

标签 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?));
}

最佳答案

假设您要用于实现 RowMapper 的类是 MapCarWithDriver。现在在其中,将覆盖一个 mapRow(ResultSet, int rowNum) 方法。这将为执行查询的结果集的每一行调用。所以现在您可以通过

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

关于mysql - 具有多个类的 RowMapper,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13166220/

相关文章:

mysql - 对短 mysql 表的多条件请求

mysql - 从查询中删除 'using filesort'

java - 如何缓存特定时间的数据 Spring Boot Rest Template

java - 带$符号的sql表名

java - 如何使用 Spring 和 JDBCTemplate 取消长时间运行的查询?

java - 如何修复 Spring Boot 应用程序中 SimpleJdbcInsert 中的错误

java - 使用 JDBC 时出现 MissingResourceException?

php - 将 INSERT IGNORE 语句添加到 CAKEPHP saveAll 方法

java - "JSR-303 Provider is on the classpath"含义

spring - 从 Spring 2.5 迁移到 4