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 ); } }
public void afterOperation(boolean success) { if ( !isTransactionInProgress() ) { getJdbcCoordinator().afterTransaction(); } }
private void managedFlush() { checkOpen(); getJdbcCoordinator().executeBatch(); }
protected void releaseStatements() { for ( PreparedStatement statement : getStatements().values() ) { clearBatch( statement ); jdbcCoordinator.getResourceRegistry().release( statement ); jdbcCoordinator.afterStatementExecution(); } getStatements().clear(); }
protected void releaseStatement(PreparedStatement insert, SharedSessionContractImplementor session) throws SQLException { session.getJdbcCoordinator().getLogicalConnection().getResourceRegistry().release( insert ); session.getJdbcCoordinator().afterStatementExecution(); } }
/** * 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; } }
PreparedStatement st = session .getJdbcCoordinator() .getStatementPreparer() .prepareStatement( sqlSelectSizeString ); try { getKeyType().nullSafeSet( st, key, 1, session ); ResultSet rs = session.getJdbcCoordinator().getResultSetReturn().extract( st ); try { return rs.next() ? rs.getInt( 1 ) - baseIndex : 0; session.getJdbcCoordinator().getResourceRegistry().release( rs, st ); session.getJdbcCoordinator().getResourceRegistry().release( st ); session.getJdbcCoordinator().afterStatementExecution();
@Override public PreparedStatement prepareQueryStatement(String sql, final boolean isCallable, final ScrollMode scrollMode) { checkAutoGeneratedKeysSupportEnabled(); jdbcCoordinator.executeBatch(); PreparedStatement ps = new QueryStatementPreparationTemplate(sql) { public PreparedStatement doPrepare() throws SQLException { PreparedStatement ps; ps = connection().prepareStatement(sql, dbmsDialect.getPrepareFlags()); return dbmsDialect.prepare(ps, returningSqlTypes); } }.prepareStatement(); ps = (PreparedStatement) Proxy.newProxyInstance(ps.getClass().getClassLoader(), new Class[]{ PreparedStatement.class }, new PreparedStatementInvocationHandler(ps, dbmsDialect, columns, returningResult)); jdbcCoordinator.registerLastQuery(ps); return ps; }
protected interface InclusionChecker { boolean includeProperty(int propertyNumber); }
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 } } } }
/** * The mode for physical handling of the JDBC Connection * * @return The JDBC Connection handlng mode * * @deprecated (since 5.2) access via {@link #getLogicalConnection} instead */ @Deprecated default PhysicalConnectionHandlingMode getConnectionHandlingMode() { return getLogicalConnection().getConnectionHandlingMode(); }
@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" ); } }
@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 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 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 ); } }
private PreparedStatement buildBatchStatement(String sql, boolean callable) { return jdbcCoordinator.getStatementPreparer().prepareStatement( sql, callable ); }
@Override public Batch buildBatch(BatchKey key, JdbcCoordinator jdbcCoordinator) { final Integer sessionJdbcBatchSize = jdbcCoordinator.getJdbcSessionOwner() .getJdbcBatchSize(); final int jdbcBatchSizeToUse = sessionJdbcBatchSize == null ? this.jdbcBatchSize : sessionJdbcBatchSize; return jdbcBatchSizeToUse > 1 ? new BatchingBatch( key, jdbcCoordinator, jdbcBatchSizeToUse ) : new NonBatchingBatch( key, jdbcCoordinator ); }
private void setStatementTimeout(PreparedStatement preparedStatement) throws SQLException { final int remainingTransactionTimeOutPeriod = jdbcCoordinator.determineRemainingTransactionTimeOutPeriod(); if (remainingTransactionTimeOutPeriod > 0) { preparedStatement.setQueryTimeout(remainingTransactionTimeOutPeriod); } } }
private void postExtract(ResultSet rs, Statement st) { if ( rs != null ) { jdbcCoordinator.getResourceRegistry().register( rs, st ); } }
@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() ); } }