Java resultset rowmapper

#java #spring #resultset #mapper

#java #spring #результирующий набор #mapper

Вопрос:

 package dao;

import java.sql.ResultSet;
import java.sql.SQLException;

import org.krams.tutorial.oxm.SubscriptionRequest;
import org.springframework.jdbc.core.RowMapper;
import org.springframework.jdbc.core.simple.SimpleJdbcDaoSupport;

public class MyMapper implements RowMapper<SubscriptionRequest> {
    public SubscriptionRequest mapRow(ResultSet rs, int rowNum) throws SQLException {
        SubscriptionRequest subscription = new SubscriptionRequest();
        subscription.setId(rs.getInt(1));
        subscription.setCity(rs.getString(2));   
        return subscription;
    }
}
  

на данный момент это мой класс, он является картографом для моей таблицы 1

как я могу использовать тот же класс mapper для других таблиц базы данных? или для каждой таблицы я должен создавать новый класс mapper?

Ответ №1:

Поскольку ваш RowMapper не содержит состояния, один и тот же экземпляр этого класса может быть использован для любой таблицы / выбора. Вопрос только в том, могут ли эти таблицы / выборки быть преобразованы в объект SubscriptionRequest и содержать первый столбец int и второй столбец string.

Если нет, то вы должны создать новый RowMapper для каждого объекта, который вы хотите сгенерировать. Или используйте какой-нибудь «универсальный» преобразователь строк, который будет создавать карту из каждой строки вместо конкретного объекта.