static boolean required(Connection cxn) throws SQLException { try (Statement s = cxn.createStatement()) { final ResultSet rs = s.executeQuery("SELECT COUNT(*) as remaining FROM pipelineselections WHERE version = 1"); rs.next(); return rs.getInt("remaining") > 0; } }
private static boolean tablesExist(Connection connection) throws SQLException { try (ResultSet resultSet = connection.prepareStatement( "SELECT COUNT(*) FROM INFORMATION_SCHEMA.SYSTEM_TABLES WHERE TABLE_TYPE='TABLE'") .executeQuery()) { resultSet.next(); int numberOfTables = resultSet.getInt(1); logger.log(Level.INFO, "Found " + numberOfTables + " tables."); // If we have 12 or more tables, we assume the creation scripts has created // all tables and indices. return (numberOfTables >= 12); } }
@Test public void testQueryForObjectWithMapAndInteger() throws Exception { given(resultSet.getMetaData()).willReturn(resultSetMetaData); given(resultSet.next()).willReturn(true, false); given(resultSet.getInt(1)).willReturn(22); Map<String, Object> params = new HashMap<>(); params.put("id", 3); Object o = template.queryForObject("SELECT AGE FROM CUSTMR WHERE ID = :id", params, Integer.class); assertTrue("Correct result type", o instanceof Integer); verify(connection).prepareStatement("SELECT AGE FROM CUSTMR WHERE ID = ?"); verify(preparedStatement).setObject(1, 3); }
String sql_insert = "INSERT INTO mytable(content) VALUES (?)"; String sql_currval = "SELECT seq_mytable.CURRVAL FROM dual"; Connection connection = null; PreparedStatement statement = null; Statement currvalStatement = null; ResultSet currvalResultSet = null; try { connection = database.getConnection(); connection.setAutoCommit(false); statement = connection.prepareStatement(sql_insert); statement.setString(1, "test"); statement.executeUpdate(); currvalStatement = connection.createStatement(); currvalResultSet = currvalStatement.executeQuery(sql_currval); if (currvalResultSet.next()) { int id = currvalResultSet.getInt(1); } connection.commit(); // ...
@Before public void setUp() throws SQLException { given(connection.createStatement()).willReturn(statement); given(connection.prepareStatement(anyString())).willReturn(preparedStatement); given(statement.executeQuery(anyString())).willReturn(resultSet); given(preparedStatement.executeQuery()).willReturn(resultSet); given(resultSet.next()).willReturn(true, true, false); given(resultSet.getString(1)).willReturn("tb1", "tb2"); given(resultSet.getInt(2)).willReturn(1, 2); template.setDataSource(new SingleConnectionDataSource(connection, false)); template.setExceptionTranslator(new SQLStateSQLExceptionTranslator()); template.afterPropertiesSet(); }
@Test public void testQueryForInt() throws Exception { String sql = "SELECT AGE FROM CUSTMR WHERE ID = 3"; given(this.resultSet.next()).willReturn(true, false); given(this.resultSet.getInt(1)).willReturn(22); int i = this.template.queryForObject(sql, Integer.class).intValue(); assertEquals("Return of an int", 22, i); verify(this.resultSet).close(); verify(this.statement).close(); }
/** * @throws Exception If failed. */ @Test public void testPortRangeConnect() throws Exception { try (Connection conn = DriverManager.getConnection(URL_PORT_RANGE)) { try (Statement stmt = conn.createStatement()) { stmt.execute("SELECT 1"); ResultSet rs = stmt.getResultSet(); assertTrue(rs.next()); assertEquals(1, rs.getInt(1)); } } }
private List<Column> getColumnsForTable(Connection connection, String catalog, String schema, String table) throws SQLException { ResultSet columns = connection.getMetaData().getColumns(catalog, escapeLikeExpression(connection, schema), escapeLikeExpression(connection, table), null); ImmutableList.Builder<Column> columnBuilder = new ImmutableList.Builder<>(); while (columns.next()) { String name = columns.getString("COLUMN_NAME"); int type = columns.getInt("DATA_TYPE"); columnBuilder.add(new Column(name, APPROXIMATE_TYPES.contains(type))); } return columnBuilder.build(); }
@Override public boolean isEmpty(String database, String table) throws SQLException { String sql = String.format(SELECT_SQL_FORMAT, database, table); try (PreparedStatement pstmt = this.conn.prepareStatement(sql); ResultSet resultSet = pstmt.executeQuery();) { if (!resultSet.first()) { throw new RuntimeException("Should have received at least one row from SQL " + pstmt); } return 0 == resultSet.getInt(1); } }
private int getEventCount(final String tableName, final Collection<String> tableFields, final Condition condition) { int result = 0; try ( Connection conn = dataSource.getConnection(); PreparedStatement preparedStatement = createCountPreparedStatement(conn, tableName, tableFields, condition); ResultSet resultSet = preparedStatement.executeQuery() ) { resultSet.next(); result = resultSet.getInt(1); } catch (final SQLException ex) { // TODO 记录失败直接输出日志,未来可考虑配置化 log.error("Fetch EventCount from DB error:", ex); } return result; }
@Test public void testGetPrimitiveTypeNullAsOwnType() throws Exception { final ResultSet rs = statement.executeQuery( "SELECT CAST( NULL AS INTEGER ) FROM INFORMATION_SCHEMA.CATALOGS" ); assertTrue( rs.next() ); assertThat( "getInt(...) for NULL", rs.getInt( 1 ), equalTo( 0 ) ); assertThat( "wasNull", rs.wasNull(), equalTo( true ) ); }
/** * Get the OID of an object. This method is called by the database. * * @param conn the connection * @param tableName the table name * @return the oid */ public static int getOid(Connection conn, String tableName) throws SQLException { if (tableName.startsWith("\"") && tableName.endsWith("\"")) { tableName = tableName.substring(1, tableName.length() - 1); } PreparedStatement prep = conn.prepareStatement( "select oid from pg_class where relName = ?"); prep.setString(1, tableName); ResultSet rs = prep.executeQuery(); if (!rs.next()) { return 0; } return rs.getInt(1); }
static boolean required(Connection cxn) throws SQLException { try (Statement s = cxn.createStatement()) { final ResultSet rs = s.executeQuery("SELECT COUNT(*) as remaining FROM pipelineselections WHERE version = 0"); rs.next(); return rs.getInt("remaining") > 0; } }
@Test public void testQueryForIntWithParamMap() throws Exception { given(resultSet.getMetaData()).willReturn(resultSetMetaData); given(resultSet.next()).willReturn(true, false); given(resultSet.getInt(1)).willReturn(22); MapSqlParameterSource params = new MapSqlParameterSource(); params.addValue("id", 3); int i = template.queryForObject("SELECT AGE FROM CUSTMR WHERE ID = :id", params, Integer.class).intValue(); assertEquals("Return of an int", 22, i); verify(connection).prepareStatement("SELECT AGE FROM CUSTMR WHERE ID = ?"); verify(preparedStatement).setObject(1, 3); }
@Test public void testQueryForObjectWithInteger() throws Exception { String sql = "SELECT AGE FROM CUSTMR WHERE ID = 3"; given(this.resultSet.next()).willReturn(true, false); given(this.resultSet.getInt(1)).willReturn(22); assertEquals(Integer.valueOf(22), this.template.queryForObject(sql, Integer.class)); verify(this.resultSet).close(); verify(this.statement).close(); }
/** * @throws Exception If failed. */ @Test public void testMultipleAddressesConnect() throws Exception { try (Connection conn = DriverManager.getConnection(url())) { try (Statement stmt = conn.createStatement()) { stmt.execute("SELECT 1"); ResultSet rs = stmt.getResultSet(); assertTrue(rs.next()); assertEquals(1, rs.getInt(1)); } } }
private void initializeAddInvoiceWithMetaData(boolean isFunction) throws SQLException { ResultSet proceduresResultSet = mock(ResultSet.class); ResultSet procedureColumnsResultSet = mock(ResultSet.class); given(databaseMetaData.getDatabaseProductName()).willReturn("Oracle"); given(databaseMetaData.getUserName()).willReturn("ME"); given(databaseMetaData.storesUpperCaseIdentifiers()).willReturn(true); given(databaseMetaData.getProcedures("", "ME", "ADD_INVOICE")).willReturn(proceduresResultSet); given(databaseMetaData.getProcedureColumns("", "ME", "ADD_INVOICE", null)).willReturn(procedureColumnsResultSet); given(proceduresResultSet.next()).willReturn(true, false); given(proceduresResultSet.getString("PROCEDURE_NAME")).willReturn("add_invoice"); given(procedureColumnsResultSet.next()).willReturn(true, true, true, false); given(procedureColumnsResultSet.getInt("DATA_TYPE")).willReturn(4); if (isFunction) { given(procedureColumnsResultSet.getString("COLUMN_NAME")).willReturn(null,"amount", "custid"); given(procedureColumnsResultSet.getInt("COLUMN_TYPE")).willReturn(5, 1, 1); given(connection.prepareCall("{? = call ADD_INVOICE(?, ?)}")).willReturn(callableStatement); given(callableStatement.getObject(1)).willReturn(4L); } else { given(procedureColumnsResultSet.getString("COLUMN_NAME")).willReturn("amount", "custid", "newid"); given(procedureColumnsResultSet.getInt("COLUMN_TYPE")).willReturn(1, 1, 4); given(connection.prepareCall("{call ADD_INVOICE(?, ?, ?)}")).willReturn(callableStatement); given(callableStatement.getObject(3)).willReturn(4L); } given(callableStatement.getUpdateCount()).willReturn(-1); }
@Override public boolean isEmpty(String database, String table) throws SQLException { String sql = String.format(SELECT_SQL_FORMAT, database, table); try (PreparedStatement pstmt = this.conn.prepareStatement(sql); ResultSet resultSet = pstmt.executeQuery();) { if (!resultSet.first()) { throw new RuntimeException("Should have received at least one row from SQL " + pstmt); } return 0 == resultSet.getInt(1); } }
public boolean hasProjectNotificationSubscribersForDispatchers(String projectUuid, Collection<String> dispatcherKeys) { try (DbSession session = mybatis.openSession(false); Connection connection = session.getConnection(); PreparedStatement pstmt = createStatement(projectUuid, dispatcherKeys, connection); ResultSet rs = pstmt.executeQuery()) { return rs.next() && rs.getInt(1) > 0; } catch (SQLException e) { throw new IllegalStateException("Fail to execute SQL for hasProjectNotificationSubscribersForDispatchers", e); } }