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

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

Introduction

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

Prototype

public JdbcPollingChannelAdapter(JdbcOperations jdbcOperations, String selectQuery) 

Source Link

Document

Constructor taking JdbcOperations instance to use for query execution and the select query to execute to retrieve new rows.

Usage

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

@Test
public void testSimplePollForListOfMapsNoUpdate() {
    JdbcPollingChannelAdapter adapter = new JdbcPollingChannelAdapter(this.embeddedDatabase,
            "select * from item");
    this.jdbcTemplate.update("insert into item values(1,2)");
    Message<Object> message = adapter.receive();
    Object payload = message.getPayload();
    assertTrue("Wrong payload type", payload instanceof List<?>);
    List<?> rows = (List<?>) payload;
    assertEquals("Wrong number of elements", 1, rows.size());
    assertTrue("Returned row not a map", rows.get(0) instanceof Map<?, ?>);
    Map<?, ?> row = (Map<?, ?>) rows.get(0);
    assertEquals("Wrong id", 1, row.get("id"));
    assertEquals("Wrong status", 2, row.get("status"));

}

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

@Test
public void testParameterizedPollForListOfMapsNoUpdate() {
    JdbcPollingChannelAdapter adapter = new JdbcPollingChannelAdapter(this.embeddedDatabase,
            "select * from item where status=:status");
    adapter.setSelectSqlParameterSource(new SqlParameterSource() {

        public boolean hasValue(String name) {
            return "status".equals(name);
        }/*from w w w. jav a 2  s.  co  m*/

        public Object getValue(String name) throws IllegalArgumentException {
            return 2;
        }

        public String getTypeName(String name) {
            return null;
        }

        public int getSqlType(String name) {
            return Types.INTEGER;
        }
    });
    this.jdbcTemplate.update("insert into item values(1,2)");
    Message<Object> message = adapter.receive();
    Object payload = message.getPayload();
    assertTrue("Wrong payload type", payload instanceof List<?>);
    List<?> rows = (List<?>) payload;
    assertEquals("Wrong number of elements", 1, rows.size());
    assertTrue("Returned row not a map", rows.get(0) instanceof Map<?, ?>);
    Map<?, ?> row = (Map<?, ?>) rows.get(0);
    assertEquals("Wrong id", 1, row.get("id"));
    assertEquals("Wrong status", 2, row.get("status"));

}

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 w  ww  .  j a  va 2 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();/*  ww w  . ja v a  2s.c om*/

    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);/*w  ww  .  ja  va2  s  .  c om*/
    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);/*from   www  . 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 ww.j  ava 2 s  . com
    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);

}

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

@Test
public void testEmptyPoll() {
    JdbcPollingChannelAdapter adapter = new JdbcPollingChannelAdapter(this.embeddedDatabase,
            "select * from item");
    Message<Object> message = adapter.receive();
    assertNull("Message received when no rows in table", message);

}