Example usage for org.springframework.jdbc.core JdbcTemplate queryForObject

List of usage examples for org.springframework.jdbc.core JdbcTemplate queryForObject

Introduction

In this page you can find the example usage for org.springframework.jdbc.core JdbcTemplate queryForObject.

Prototype

@Override
    @Nullable
    public <T> T queryForObject(String sql, Class<T> requiredType) throws DataAccessException 

Source Link

Usage

From source file:org.springframework.batch.item.database.JpaPagingItemReaderAsyncTests.java

@Before
public void init() {
    JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
    maxId = jdbcTemplate.queryForObject("SELECT MAX(ID) from T_FOOS", Integer.class);
    for (int i = ITEM_COUNT; i > maxId; i--) {
        jdbcTemplate.update("INSERT into T_FOOS (ID,NAME,VALUE) values (?, ?, ?)", i, "foo" + i, i);
    }/*from   w w  w.j ava  2  s . com*/
    assertEquals(ITEM_COUNT, JdbcTestUtils.countRowsInTable(jdbcTemplate, "T_FOOS"));
}

From source file:org.springframework.jdbc.core.JdbcTemplateQueryTests.java

public void testQueryForObjectThrowsIncorrectResultSizeForMoreThanOneRow() throws Exception {
    String sql = "select pass from t_account where first_name='Alef'";

    mockResultSetMetaData.getColumnCount();
    ctrlResultSetMetaData.setReturnValue(1);

    mockResultSet.getMetaData();/*from  w  w  w .  ja  va 2  s  .  c  o  m*/
    ctrlResultSet.setReturnValue(mockResultSetMetaData);
    mockResultSet.next();
    ctrlResultSet.setReturnValue(true);
    mockResultSet.getString(1);
    ctrlResultSet.setReturnValue("pass");
    mockResultSet.next();
    ctrlResultSet.setReturnValue(true);
    mockResultSet.getMetaData();
    ctrlResultSet.setReturnValue(mockResultSetMetaData);
    mockResultSetMetaData.getColumnCount();
    ctrlResultSetMetaData.setReturnValue(1);
    mockResultSet.getString(1);
    ctrlResultSet.setReturnValue("pass");
    mockResultSet.next();
    ctrlResultSet.setReturnValue(false);
    mockResultSet.close();
    ctrlResultSet.setVoidCallable();

    mockStatement.executeQuery(sql);
    ctrlStatement.setReturnValue(mockResultSet);
    if (debugEnabled) {
        mockStatement.getWarnings();
        ctrlStatement.setReturnValue(null);
    }
    mockStatement.close();
    ctrlStatement.setVoidCallable();

    mockConnection.createStatement();
    ctrlConnection.setReturnValue(mockStatement);

    replay();

    JdbcTemplate template = new JdbcTemplate(mockDataSource);
    try {
        template.queryForObject(sql, String.class);
        fail("Should have thrown IncorrectResultSizeDataAccessException");
    } catch (IncorrectResultSizeDataAccessException ex) {
        // expected
    }
}

From source file:org.springframework.jdbc.core.JdbcTemplateQueryTests.java

public void testQueryForObjectWithRowMapper() throws Exception {
    String sql = "SELECT AGE FROM CUSTMR WHERE ID = 3";

    mockResultSet.next();//  w  w  w . j  a va  2  s .  c om
    ctrlResultSet.setReturnValue(true);
    mockResultSet.getInt(1);
    ctrlResultSet.setReturnValue(22);
    mockResultSet.next();
    ctrlResultSet.setReturnValue(false);
    mockResultSet.close();
    ctrlResultSet.setVoidCallable();

    mockStatement.executeQuery(sql);
    ctrlStatement.setReturnValue(mockResultSet);
    if (debugEnabled) {
        mockStatement.getWarnings();
        ctrlStatement.setReturnValue(null);
    }
    mockStatement.close();
    ctrlStatement.setVoidCallable();

    mockConnection.createStatement();
    ctrlConnection.setReturnValue(mockStatement);

    replay();

    JdbcTemplate template = new JdbcTemplate(mockDataSource);

    Object o = template.queryForObject(sql, new RowMapper() {
        public Object mapRow(ResultSet rs, int rowNum) throws SQLException {
            return new Integer(rs.getInt(1));
        }
    });
    assertTrue("Correct result type", o instanceof Integer);
}

From source file:org.springframework.jdbc.core.JdbcTemplateQueryTests.java

public void testQueryForObjectWithString() throws Exception {
    String sql = "SELECT AGE FROM CUSTMR WHERE ID = 3";

    mockResultSetMetaData.getColumnCount();
    ctrlResultSetMetaData.setReturnValue(1);

    mockResultSet.getMetaData();/*  w w w  . j a  v a  2  s . c o  m*/
    ctrlResultSet.setReturnValue(mockResultSetMetaData);
    mockResultSet.next();
    ctrlResultSet.setReturnValue(true);
    mockResultSet.getString(1);
    ctrlResultSet.setReturnValue("myvalue");
    mockResultSet.next();
    ctrlResultSet.setReturnValue(false);
    mockResultSet.close();
    ctrlResultSet.setVoidCallable();

    mockStatement.executeQuery(sql);
    ctrlStatement.setReturnValue(mockResultSet);
    if (debugEnabled) {
        mockStatement.getWarnings();
        ctrlStatement.setReturnValue(null);
    }
    mockStatement.close();
    ctrlStatement.setVoidCallable();

    mockConnection.createStatement();
    ctrlConnection.setReturnValue(mockStatement);

    replay();

    JdbcTemplate template = new JdbcTemplate(mockDataSource);
    assertEquals("myvalue", template.queryForObject(sql, String.class));
}

From source file:org.springframework.jdbc.core.JdbcTemplateQueryTests.java

public void testQueryForObjectWithBigInteger() throws Exception {
    String sql = "SELECT AGE FROM CUSTMR WHERE ID = 3";

    mockResultSetMetaData.getColumnCount();
    ctrlResultSetMetaData.setReturnValue(1);

    mockResultSet.getMetaData();//from w  w w.ja va  2 s . c o m
    ctrlResultSet.setReturnValue(mockResultSetMetaData);
    mockResultSet.next();
    ctrlResultSet.setReturnValue(true);
    mockResultSet.getObject(1);
    ctrlResultSet.setReturnValue("22");
    mockResultSet.next();
    ctrlResultSet.setReturnValue(false);
    mockResultSet.close();
    ctrlResultSet.setVoidCallable();

    mockStatement.executeQuery(sql);
    ctrlStatement.setReturnValue(mockResultSet);
    if (debugEnabled) {
        mockStatement.getWarnings();
        ctrlStatement.setReturnValue(null);
    }
    mockStatement.close();
    ctrlStatement.setVoidCallable();

    mockConnection.createStatement();
    ctrlConnection.setReturnValue(mockStatement);

    replay();

    JdbcTemplate template = new JdbcTemplate(mockDataSource);
    assertEquals(new BigInteger("22"), template.queryForObject(sql, BigInteger.class));
}

From source file:org.springframework.jdbc.core.JdbcTemplateQueryTests.java

public void testQueryForObjectWithBigDecimal() throws Exception {
    String sql = "SELECT AGE FROM CUSTMR WHERE ID = 3";

    mockResultSetMetaData.getColumnCount();
    ctrlResultSetMetaData.setReturnValue(1);

    mockResultSet.getMetaData();//from   w w  w .  j  ava  2s.  c o  m
    ctrlResultSet.setReturnValue(mockResultSetMetaData);
    mockResultSet.next();
    ctrlResultSet.setReturnValue(true);
    mockResultSet.getBigDecimal(1);
    ctrlResultSet.setReturnValue(new BigDecimal(22.5));
    mockResultSet.next();
    ctrlResultSet.setReturnValue(false);
    mockResultSet.close();
    ctrlResultSet.setVoidCallable();

    mockStatement.executeQuery(sql);
    ctrlStatement.setReturnValue(mockResultSet);
    if (debugEnabled) {
        mockStatement.getWarnings();
        ctrlStatement.setReturnValue(null);
    }
    mockStatement.close();
    ctrlStatement.setVoidCallable();

    mockConnection.createStatement();
    ctrlConnection.setReturnValue(mockStatement);

    replay();

    JdbcTemplate template = new JdbcTemplate(mockDataSource);
    assertEquals(new BigDecimal(22.5), template.queryForObject(sql, BigDecimal.class));
}

From source file:org.springframework.jdbc.core.JdbcTemplateQueryTests.java

public void testQueryForObjectWithInteger() throws Exception {
    String sql = "SELECT AGE FROM CUSTMR WHERE ID = 3";

    mockResultSetMetaData.getColumnCount();
    ctrlResultSetMetaData.setReturnValue(1);

    mockResultSet.getMetaData();/*from www. j  av  a2  s . c o m*/
    ctrlResultSet.setReturnValue(mockResultSetMetaData);
    mockResultSet.next();
    ctrlResultSet.setReturnValue(true);
    mockResultSet.getInt(1);
    ctrlResultSet.setReturnValue(22);
    mockResultSet.wasNull();
    ctrlResultSet.setReturnValue(false);
    mockResultSet.next();
    ctrlResultSet.setReturnValue(false);
    mockResultSet.close();
    ctrlResultSet.setVoidCallable();

    mockStatement.executeQuery(sql);
    ctrlStatement.setReturnValue(mockResultSet);
    if (debugEnabled) {
        mockStatement.getWarnings();
        ctrlStatement.setReturnValue(null);
    }
    mockStatement.close();
    ctrlStatement.setVoidCallable();

    mockConnection.createStatement();
    ctrlConnection.setReturnValue(mockStatement);

    replay();

    JdbcTemplate template = new JdbcTemplate(mockDataSource);
    assertEquals(new Integer(22), template.queryForObject(sql, Integer.class));
}

From source file:org.springframework.jdbc.core.JdbcTemplateQueryTests.java

public void testQueryForObjectWithIntegerAndNull() throws Exception {
    String sql = "SELECT AGE FROM CUSTMR WHERE ID = 3";

    mockResultSetMetaData.getColumnCount();
    ctrlResultSetMetaData.setReturnValue(1);

    mockResultSet.getMetaData();/*from  w w  w .  j  a va 2 s . co  m*/
    ctrlResultSet.setReturnValue(mockResultSetMetaData);
    mockResultSet.next();
    ctrlResultSet.setReturnValue(true);
    mockResultSet.getInt(1);
    ctrlResultSet.setReturnValue(0);
    mockResultSet.wasNull();
    ctrlResultSet.setReturnValue(true);
    mockResultSet.next();
    ctrlResultSet.setReturnValue(false);
    mockResultSet.close();
    ctrlResultSet.setVoidCallable();

    mockStatement.executeQuery(sql);
    ctrlStatement.setReturnValue(mockResultSet);
    if (debugEnabled) {
        mockStatement.getWarnings();
        ctrlStatement.setReturnValue(null);
    }
    mockStatement.close();
    ctrlStatement.setVoidCallable();

    mockConnection.createStatement();
    ctrlConnection.setReturnValue(mockStatement);

    replay();

    JdbcTemplate template = new JdbcTemplate(mockDataSource);
    assertNull(template.queryForObject(sql, Integer.class));
}

From source file:org.springframework.test.jdbc.JdbcTestUtils.java

/**
 * Count the rows in the given table.//from w w w.  ja v a 2  s. c o m
 * @param jdbcTemplate the JdbcTemplate with which to perform JDBC operations
 * @param tableName name of the table to count rows in
 * @return the number of rows in the table
 */
public static int countRowsInTable(JdbcTemplate jdbcTemplate, String tableName) {
    Integer result = jdbcTemplate.queryForObject("SELECT COUNT(0) FROM " + tableName, Integer.class);
    return (result != null ? result : 0);
}

From source file:org.springframework.test.jdbc.JdbcTestUtils.java

/**
 * Count the rows in the given table, using the provided {@code WHERE} clause.
 * <p>If the provided {@code WHERE} clause contains text, it will be prefixed
 * with {@code " WHERE "} and then appended to the generated {@code SELECT}
 * statement. For example, if the provided table name is {@code "person"} and
 * the provided where clause is {@code "name = 'Bob' and age > 25"}, the
 * resulting SQL statement to execute will be
 * {@code "SELECT COUNT(0) FROM person WHERE name = 'Bob' and age > 25"}.
 * @param jdbcTemplate the JdbcTemplate with which to perform JDBC operations
 * @param tableName the name of the table to count rows in
 * @param whereClause the {@code WHERE} clause to append to the query
 * @return the number of rows in the table that match the provided
 * {@code WHERE} clause/*from   w  w w. j  a v a  2s  . c o m*/
 */
public static int countRowsInTableWhere(JdbcTemplate jdbcTemplate, String tableName, String whereClause) {
    String sql = "SELECT COUNT(0) FROM " + tableName;
    if (StringUtils.hasText(whereClause)) {
        sql += " WHERE " + whereClause;
    }
    Integer result = jdbcTemplate.queryForObject(sql, Integer.class);
    return (result != null ? result : 0);
}