powered by simpleCommunicator - 2.0.30     © 2024 Programmizd 02
Map
Форумы / Java [игнор отключен] [закрыт для гостей] / JDBC, JAVA, Интерфейсы
4 сообщений из 4, страница 1 из 1
JDBC, JAVA, Интерфейсы
    #40013530
colacoca
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не понимаю как работает данный интерфейс. По тесту нужно, чтобы в методе employeeRowMapper был метод mapRow. Не понимаю как его прописать там

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
import com.epam.rd.autocode.domain.Employee;

public class RowMapperFactory {
    public RowMapper<Employee> employeeRowMapper() {

        throw new UnsupportedOperationException();
    }
}



Интерфейс

Код: java
1.
2.
3.
4.
5.
6.
import java.sql.ResultSet;

public interface RowMapper<T> {
    T mapRow(ResultSet resultSet);

}



тест:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
public class RowMapperTest {

    private static ConnectionSource connectionSource;

    @BeforeClass
    public static void initConnectionSource() {
        connectionSource = ConnectionSource.instance();
    }

    @Test
    public void employeeMapRowSingleTest() throws Exception {
        final RowMapper<Employee> employeeRowMapper = new RowMapperFactory().employeeRowMapper();

        try (final Connection conn = connectionSource.createConnection();
             final Statement statement = conn.createStatement();
             final ResultSet rs = statement.executeQuery("select * from EMPLOYEE where id = '7499'")) {

            rs.next();
            final Employee employee = employeeRowMapper.mapRow(rs);

            assertEquals(
                    new Employee(
                            new BigInteger("7499"),
                            new FullName("JOHN", "ALLEN", "MARIA"),
                            Position.SALESMAN,
                            LocalDate.of(1981, 2, 20),
                            new BigDecimal("1600")
                    ),
                    employee
            );
        }
    }
...
Рейтинг: 0 / 0
JDBC, JAVA, Интерфейсы
    #40014101
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
colacoca,

Прошу прощения.
Зачем вам БД и подключение для тестирования RowMapper?!

Это же простой интерфейс, который преобразует строку ResultSet а объект.

Т.е. соединятся с БД не нужно.

Просто напишите в тесте, что если на входе такой RowSet, то на выходе должен быть такой объект.
...
Рейтинг: 0 / 0
JDBC, JAVA, Интерфейсы
    #40014583
maxkar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
colacoca,

Можно написать класс и создать его экземпляр в методе. Можно - экземпляр анонимного класса:

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
public class RowMapperFactory {
    public RowMapper<Employee> employeeRowMapper() {
        return new RowMapper<Employee>() {
            @Override
            public Employee mapRow(ResultSet resultSet) {
                 return new Employee(
                            new BigInteger("7499"),
                            new FullName("JOHN", "ALLEN", "MARIA"),
                            Position.SALESMAN,
                            LocalDate.of(1981, 2, 20),
                            new BigDecimal("1600")
                    );
            }
        };
    }
}
...
Рейтинг: 0 / 0
JDBC, JAVA, Интерфейсы
    #40015368
colacoca
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
maxkar, Спасибо!
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / JDBC, JAVA, Интерфейсы
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]