@Override public void execute(Connection connection) throws SQLException { PreparedStatement statement = ((SessionImplementor)s).getJdbcCoordinator().getStatementPreparer().prepareStatement( "SELECT * FROM STRANGE_TYPED_OBJECT WHERE ID=?" ); statement.setInt(1, id.intValue()); ResultSet resultSet = ((SessionImplementor)s).getJdbcCoordinator().getResultSetReturn().extract( statement ); assertTrue("A row should have been returned", resultSet.next()); assertTrue("Default value should have been mapped to null", resultSet.getObject("VALUE_ONE") == null); assertTrue("Default value should have been mapped to null", resultSet.getObject("VALUE_TWO") == null); assertEquals("Non-Default value should not be changed", resultSet.getInt("VALUE_THREE"), 5); assertTrue("Default value should have been mapped to null", resultSet.getObject("VALUE_FOUR") == null); } }
@Override protected Serializable executeAndExtract(PreparedStatement insert, SharedSessionContractImplementor session) throws SQLException { session.getJdbcCoordinator().getResultSetReturn().executeUpdate( insert ); return IdentifierGeneratorHelper.getGeneratedIdentity( insert.getGeneratedKeys(), getPersister().getRootTableKeyColumnNames()[0], getPersister().getIdentifierType(), session.getJdbcServices().getJdbcEnvironment().getDialect() ); } }
public void execute(Connection connection) throws SQLException { Statement st = s.getJdbcCoordinator().getStatementPreparer().createStatement(); s.getJdbcCoordinator().getResultSetReturn().extract( st, "SELECT COUNT(*) FROM " + table ); ResultSet result = s.getJdbcCoordinator().getResultSetReturn().extract( st, "SELECT COUNT(*) FROM " + table ); result.next(); int rowCount = result.getInt( 1 ); assertEquals( "Unexpected row count", expectedRowCount, rowCount ); } }
@Override public void addToBatch() { notifyObserversImplicitExecution(); for ( Map.Entry<String,PreparedStatement> entry : getStatements().entrySet() ) { try { final PreparedStatement statement = entry.getValue(); final int rowCount = jdbcCoordinator.getResultSetReturn().executeUpdate( statement ); getKey().getExpectation().verifyOutcome( rowCount, statement, 0 ); jdbcCoordinator.getResourceRegistry().release( statement ); jdbcCoordinator.afterStatementExecution(); } catch ( SQLException e ) { abortBatch(); throw sqlExceptionHelper().convert( e, "could not execute non-batched batch statement", entry.getKey() ); } catch (JDBCException e) { abortBatch(); throw e; } } getStatements().clear(); }
@Override public void execute(Connection connection) throws SQLException { // Attempt to insert some bad values into the T_MEMBERSHIP table that should // result in a constraint violation PreparedStatement ps = null; try { ps = ((SessionImplementor)session).getJdbcCoordinator().getStatementPreparer().prepareStatement( "INSERT INTO T_MEMBERSHIP (user_id, group_id) VALUES (?, ?)" ); ps.setLong(1, 52134241); // Non-existent user_id ps.setLong(2, 5342); // Non-existent group_id ((SessionImplementor)session).getJdbcCoordinator().getResultSetReturn().executeUpdate( ps ); fail("INSERT should have failed"); } catch (ConstraintViolationException ignore) { // expected outcome } finally { releaseStatement( session, ps ); } } }
@Override public void execute(Connection connection) throws SQLException { final JdbcCoordinator jdbcCoordinator = ( (SessionImplementor) session ).getJdbcCoordinator(); final StatementPreparer statementPreparer = jdbcCoordinator.getStatementPreparer(); final ResultSetReturn resultSetReturn = jdbcCoordinator.getResultSetReturn(); PreparedStatement ps = null; try { ps = statementPreparer.prepareStatement( "UPDATE T_USER SET user_name = ? WHERE user_id = ?" ); ps.setNull( 1, Types.VARCHAR ); // Attempt to update user name to NULL (NOT NULL constraint defined). ps.setLong( 2, user.getId() ); resultSetReturn.executeUpdate( ps ); fail( "UPDATE should have failed because of not NULL constraint." ); } catch ( ConstraintViolationException ignore ) { // expected outcome } finally { releaseStatement( session, ps ); } } }
@Override public Serializable executeAndExtract(PreparedStatement insert, SharedSessionContractImplementor session) throws SQLException { session.getJdbcCoordinator().getResultSetReturn().executeUpdate( insert ); ResultSet rs = null; try { rs = insert.getGeneratedKeys(); return IdentifierGeneratorHelper.getGeneratedIdentity( rs, persister.getRootTableKeyColumnNames()[0], persister.getIdentifierType(), session.getJdbcServices().getJdbcEnvironment().getDialect() ); } finally { if ( rs != null ) { session.getJdbcCoordinator().getLogicalConnection().getResourceRegistry().release( rs, insert ); } } } }
@Override public void execute(Connection connection) throws SQLException { Statement stmt = ((SessionImplementor)s).getJdbcCoordinator().getStatementPreparer().createStatement(); ((SessionImplementor)s).getJdbcCoordinator().getResultSetReturn().executeUpdate( stmt, "DROP FUNCTION spLock FROM TestInterSystemsFunctionsClass" ); } }
/** * Execute given <tt>CallableStatement</tt>, advance to the first result and return SQL <tt>ResultSet</tt>. */ protected final ResultSet getResultSet( final CallableStatement st, final RowSelection selection, final LimitHandler limitHandler, final boolean autodiscovertypes, final SharedSessionContractImplementor session) throws SQLException, HibernateException { try { ResultSet rs = session.getJdbcCoordinator().getResultSetReturn().extract( st ); return processResultSet(rs, selection, limitHandler, autodiscovertypes, session); } catch (SQLException | HibernateException e) { session.getJdbcCoordinator().getLogicalConnection().getResourceRegistry().release( st ); session.getJdbcCoordinator().afterStatementExecution(); throw e; } }
/** * Execute given <tt>PreparedStatement</tt>, advance to the first result and return SQL <tt>ResultSet</tt>. */ protected final ResultSet getResultSet( final PreparedStatement st, final RowSelection selection, final LimitHandler limitHandler, final boolean autodiscovertypes, final SharedSessionContractImplementor session) throws SQLException, HibernateException { try { ResultSet rs = session.getJdbcCoordinator().getResultSetReturn().extract( st ); return processResultSet(rs, selection, limitHandler, autodiscovertypes, session); } catch (SQLException | HibernateException e) { session.getJdbcCoordinator().getLogicalConnection().getResourceRegistry().release( st ); session.getJdbcCoordinator().afterStatementExecution(); throw e; } }
private void cleanUpRows(String tableName, SharedSessionContractImplementor session) { final String sql = this.getIdTableSupport().getTruncateIdTableCommand() + " " + tableName; PreparedStatement ps = null; try { ps = session.getJdbcCoordinator().getStatementPreparer().prepareStatement( sql, false ); session.getJdbcCoordinator().getResultSetReturn().executeUpdate( ps ); } finally { if ( ps != null ) { try { session.getJdbcCoordinator().getLogicalConnection().getResourceRegistry().release( ps ); } catch( Throwable ignore ) { // ignore } } } }
@Override public Serializable executeAndExtract(PreparedStatement insert, SharedSessionContractImplementor session) throws SQLException { ResultSet rs = session.getJdbcCoordinator().getResultSetReturn().execute( insert ); try { return IdentifierGeneratorHelper.getGeneratedIdentity( rs, persister.getRootTableKeyColumnNames()[0], persister.getIdentifierType(), session.getJdbcServices().getJdbcEnvironment().getDialect() ); } finally { session.getJdbcCoordinator().getLogicalConnection().getResourceRegistry().release( rs, insert ); } }
@Test public void testExceptionHandling() { Session session = openSession(); SessionImplementor sessionImpl = (SessionImplementor) session; boolean caught = false; try { PreparedStatement ps = sessionImpl.getJdbcCoordinator().getStatementPreparer() .prepareStatement( "select count(*) from NON_EXISTENT" ); sessionImpl.getJdbcCoordinator().getResultSetReturn().execute( ps ); } catch ( JDBCException ok ) { caught = true; } finally { session.close(); } assertTrue( "The connection did not throw a JDBCException as expected", caught ); }
@Override public void execute(Connection connection) throws SQLException { Statement stmt = ( (SessionImplementor) s ).getJdbcCoordinator() .getStatementPreparer() .createStatement(); String create_function = "CREATE FUNCTION SQLUser.TestInterSystemsFunctionsClass_spLock\n" + " ( INOUT pHandle %SQLProcContext, \n" + " ROWID INTEGER \n" + " )\n" + " FOR User.TestInterSystemsFunctionsClass " + " PROCEDURE\n" + " RETURNS INTEGER\n" + " LANGUAGE OBJECTSCRIPT\n" + " {\n" + " q 0\n" + " }"; ( (SessionImplementor) s ).getJdbcCoordinator().getResultSetReturn().executeUpdate( stmt, create_function ); } }
@Override public void execute(Connection connection) throws SQLException { // prepare/execute a query against a non-existent table PreparedStatement ps = null; try { ps = ((SessionImplementor)session).getJdbcCoordinator().getStatementPreparer().prepareStatement( "SELECT user_id, user_name FROM tbl_no_there" ); ((SessionImplementor)session).getJdbcCoordinator().getResultSetReturn().extract( ps ); fail("SQL compilation should have failed"); } catch (SQLGrammarException ignored) { // expected outcome } finally { releaseStatement( session, ps ); } } }
public void cleanUpRows(String tableName, SharedSessionContractImplementor session) { final String sql = "delete from " + tableName + " where " + SESSION_ID_COLUMN_NAME + "=?"; try { PreparedStatement ps = null; try { ps = session.getJdbcCoordinator().getStatementPreparer().prepareStatement( sql, false ); bindSessionIdentifier( ps, session, 1 ); session.getJdbcCoordinator().getResultSetReturn().executeUpdate( ps ); } finally { if ( ps != null ) { try { session.getJdbcCoordinator().getLogicalConnection().getResourceRegistry().release( ps ); } catch( Throwable ignore ) { // ignore } } } } catch (SQLException e) { throw session.getJdbcServices().getSqlExceptionHelper().convert( e, "Unable to clean up id table [" + tableName + "]", sql ); } } }
protected IntegralDataTypeHolder generateHolder(SharedSessionContractImplementor session) { try { PreparedStatement st = session.getJdbcCoordinator().getStatementPreparer().prepareStatement( sql ); try { ResultSet rs = session.getJdbcCoordinator().getResultSetReturn().extract( st ); try { rs.next(); IntegralDataTypeHolder result = buildHolder(); result.initialize( rs, 1 ); LOG.debugf( "Sequence identifier generated: %s", result ); return result; } finally { session.getJdbcCoordinator().getLogicalConnection().getResourceRegistry().release( rs, st ); } } finally { session.getJdbcCoordinator().getLogicalConnection().getResourceRegistry().release( st ); session.getJdbcCoordinator().afterStatementExecution(); } } catch (SQLException sqle) { throw session.getJdbcServices().getSqlExceptionHelper().convert( sqle, "could not get next sequence value", sql ); } }
@Override public void execute(Connection connection) throws SQLException { PreparedStatement stmnt = null; try { stmnt = session.getJdbcCoordinator().getStatementPreparer().prepareStatement( "UPDATE T_JOB SET JOB_STATUS = 1" ); session.getJdbcCoordinator().getResultSetReturn().executeUpdate( stmnt ); } finally { if ( stmnt != null ) { try { session.getJdbcCoordinator().getResourceRegistry().release( stmnt ); } catch( Throwable ignore ) { } } } } }
@Override public void execute(Connection connection) throws SQLException { PreparedStatement ps = sessionImplementor.getJdbcCoordinator().getStatementPreparer().prepareStatement( QUERY_STRING ); ResultSet rs = sessionImplementor.getJdbcCoordinator().getResultSetReturn().extract( ps ); try { ResultSetMetaData metadata = rs.getMetaData(); String column1Alias = getDialect().getColumnAliasExtractor().extractColumnAlias( metadata, 1 ); String column2Alias = getDialect().getColumnAliasExtractor().extractColumnAlias( metadata, 2 ); Assert.assertFalse( "bad dialect.getColumnAliasExtractor impl", column1Alias.equals( column2Alias ) ); } finally { sessionImplementor.getJdbcCoordinator().getResourceRegistry().release( rs, ps ); sessionImplementor.getJdbcCoordinator().getResourceRegistry().release( ps ); } } }
protected interface InclusionChecker { boolean includeProperty(int propertyNumber); }