Example usage for org.springframework.integration.jdbc JdbcPollingChannelAdapter setRowMapper

List of usage examples for org.springframework.integration.jdbc JdbcPollingChannelAdapter setRowMapper

Introduction

In this page you can find the example usage for org.springframework.integration.jdbc JdbcPollingChannelAdapter setRowMapper.

Prototype

public void setRowMapper(@Nullable RowMapper<?> rowMapper) 

Source Link

Usage

From source file:org.springframework.integration.jdbc.JdbcPollingChannelAdapterIntegrationTests.java

@Test
public void testSimplePollForListWithRowMapperNoUpdate() {
    JdbcPollingChannelAdapter adapter = new JdbcPollingChannelAdapter(this.embeddedDatabase,
            "select * from item");
    adapter.setRowMapper(new ItemRowMapper());
    this.jdbcTemplate.update("insert into item values(1,2)");
    Message<Object> message = adapter.receive();
    Object payload = message.getPayload();
    List<?> rows = (List<?>) payload;
    assertEquals("Wrong number of elements", 1, rows.size());
    assertTrue("Wrong payload type", rows.get(0) instanceof Item);
    Item item = (Item) rows.get(0);//from   ww  w.  j  a v  a2 s. c  o m
    assertEquals("Wrong id", 1, item.getId());
    assertEquals("Wrong status", 2, item.getStatus());

}

From source file:org.springframework.integration.jdbc.JdbcPollingChannelAdapterIntegrationTests.java

@Test
public void testSimplePollForListWithRowMapperAndOneUpdate() {
    JdbcPollingChannelAdapter adapter = new JdbcPollingChannelAdapter(this.embeddedDatabase,
            "select * from item where status=2");
    adapter.setUpdateSql("update item set status = 10 where id in (:id)");
    adapter.setRowMapper(new ItemRowMapper());
    adapter.setBeanFactory(mock(BeanFactory.class));
    adapter.afterPropertiesSet();/*from  w w  w .j av a 2s. c o m*/

    this.jdbcTemplate.update("insert into item values(1,2)");
    this.jdbcTemplate.update("insert into item values(2,2)");

    Message<Object> message = adapter.receive();
    Object payload = message.getPayload();
    List<?> rows = (List<?>) payload;
    assertEquals("Wrong number of elements", 2, rows.size());
    assertTrue("Wrong payload type", rows.get(0) instanceof Item);
    Item item = (Item) rows.get(0);
    assertEquals("Wrong id", 1, item.getId());
    assertEquals("Wrong status", 2, item.getStatus());

    int countOfStatusTwo = this.jdbcTemplate.queryForInt("select count(*) from item where status = 2");
    assertEquals("Status not updated incorect number of rows with status 2", 0, countOfStatusTwo);

    int countOfStatusTen = this.jdbcTemplate.queryForInt("select count(*) from item where status = 10");
    assertEquals("Status not updated incorect number of rows with status 10", 2, countOfStatusTen);

}

From source file:org.springframework.integration.jdbc.JdbcPollingChannelAdapterIntegrationTests.java

@Test
public void testSimplePollForListWithRowMapperAndUpdatePerRow() {
    JdbcPollingChannelAdapter adapter = new JdbcPollingChannelAdapter(this.embeddedDatabase,
            "select * from item where status=2");
    adapter.setUpdateSql("update item set status = 10 where id = :id");
    adapter.setUpdatePerRow(true);/*from w w  w.java  2s . co m*/
    adapter.setRowMapper(new ItemRowMapper());
    adapter.setBeanFactory(mock(BeanFactory.class));
    adapter.afterPropertiesSet();

    this.jdbcTemplate.update("insert into item values(1,2)");
    this.jdbcTemplate.update("insert into item values(2,2)");

    Message<Object> message = adapter.receive();
    Object payload = message.getPayload();
    List<?> rows = (List<?>) payload;
    assertEquals("Wrong number of elements", 2, rows.size());
    assertTrue("Wrong payload type", rows.get(0) instanceof Item);
    Item item = (Item) rows.get(0);
    assertEquals("Wrong id", 1, item.getId());
    assertEquals("Wrong status", 2, item.getStatus());

    int countOfStatusTwo = this.jdbcTemplate.queryForInt("select count(*) from item where status = 2");
    assertEquals("Status not updated incorect number of rows with status 2", 0, countOfStatusTwo);

    int countOfStatusTen = this.jdbcTemplate.queryForInt("select count(*) from item where status = 10");
    assertEquals("Status not updated incorect number of rows with status 10", 2, countOfStatusTen);

}

From source file:org.springframework.integration.jdbc.JdbcPollingChannelAdapterIntegrationTests.java

@Test
public void testSimplePollForListWithRowMapperAndInsertPerRowAndMaxRows() {
    JdbcPollingChannelAdapter adapter = new JdbcPollingChannelAdapter(this.embeddedDatabase,
            "select * from item where id not in (select id from copy)");
    adapter.setUpdateSql("insert into copy values(:id,10)");
    adapter.setUpdatePerRow(true);// w  ww  . j a  v  a 2  s. c  o  m
    adapter.setMaxRowsPerPoll(1);
    adapter.setRowMapper(new ItemRowMapper());
    adapter.setBeanFactory(mock(BeanFactory.class));
    adapter.afterPropertiesSet();

    this.jdbcTemplate.update("insert into item values(1,2)");
    this.jdbcTemplate.update("insert into item values(2,2)");

    logger.debug(adapter.receive());
    Message<Object> message = adapter.receive();
    Object payload = message.getPayload();
    List<?> rows = (List<?>) payload;
    assertEquals("Wrong number of elements", 1, rows.size());
    assertTrue("Wrong payload type", rows.get(0) instanceof Item);
    Item item = (Item) rows.get(0);
    logger.debug(item);
    assertEquals("Wrong id", 2, item.getId());
    assertEquals("Wrong status", 2, item.getStatus());

    int countOfStatusTwo = this.jdbcTemplate.queryForInt("select count(*) from item where status = 2");
    assertEquals("Status not updated incorect number of rows with status 2", 2, countOfStatusTwo);

    int countOfStatusTen = this.jdbcTemplate.queryForInt("select count(*) from copy where status = 10");
    assertEquals("Status not updated incorect number of rows with status 10", 2, countOfStatusTen);

}

From source file:org.springframework.integration.jdbc.JdbcPollingChannelAdapterIntegrationTests.java

@Test
public void testSimplePollForListWithRowMapperAndUpdatePerRowWithMaxRows() {
    JdbcPollingChannelAdapter adapter = new JdbcPollingChannelAdapter(this.embeddedDatabase,
            "select * from item where status=2");
    adapter.setUpdateSql("update item set status = 10 where id = :id");
    adapter.setUpdatePerRow(true);//from w  w  w . ja v  a  2  s  .  c  o m
    adapter.setMaxRowsPerPoll(1);
    adapter.setRowMapper(new ItemRowMapper());
    adapter.setBeanFactory(mock(BeanFactory.class));
    adapter.afterPropertiesSet();

    this.jdbcTemplate.update("insert into item values(1,2)");
    this.jdbcTemplate.update("insert into item values(2,2)");

    adapter.receive();
    Message<Object> message = adapter.receive();
    Object payload = message.getPayload();
    List<?> rows = (List<?>) payload;
    assertEquals("Wrong number of elements", 1, rows.size());
    assertTrue("Wrong payload type", rows.get(0) instanceof Item);
    Item item = (Item) rows.get(0);
    assertEquals("Wrong id", 2, item.getId());
    assertEquals("Wrong status", 2, item.getStatus());

    int countOfStatusTwo = this.jdbcTemplate.queryForInt("select count(*) from item where status = 2");
    assertEquals("Status not updated incorect number of rows with status 2", 0, countOfStatusTwo);

    int countOfStatusTen = this.jdbcTemplate.queryForInt("select count(*) from item where status = 10");
    assertEquals("Status not updated incorect number of rows with status 10", 2, countOfStatusTen);

}