List of usage examples for org.springframework.jdbc.core JdbcTemplate queryForObject
@Override @Nullable public <T> T queryForObject(String sql, Class<T> requiredType) throws DataAccessException
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); }