/*
* Hibernate, Relational Persistence for Idiomatic Java
*
* License: GNU Lesser General Public License (LGPL), version 2.1 or later.
* See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>.
*/
package org.hibernate.engine.jdbc.spi;
import java.sql.PreparedStatement;
import java.sql.Statement;
import org.hibernate.ScrollMode;
Contracting for preparing SQL statements
Author: Steve Ebersole, Brett Meyer
/**
* Contracting for preparing SQL statements
*
* @author Steve Ebersole
* @author Brett Meyer
*/
public interface StatementPreparer {
Create a statement.
Returns: the statement
/**
* Create a statement.
*
* @return the statement
*/
public Statement createStatement();
Prepare a statement.
Params: - sql – The SQL the statement to be prepared
Returns: the prepared statement
/**
* Prepare a statement.
*
* @param sql The SQL the statement to be prepared
*
* @return the prepared statement
*/
public PreparedStatement prepareStatement(String sql);
Prepare a statement.
Params: - sql – The SQL the statement to be prepared
- isCallable – Whether to prepare as a callable statement.
Returns: the prepared statement
/**
* Prepare a statement.
*
* @param sql The SQL the statement to be prepared
* @param isCallable Whether to prepare as a callable statement.
*
* @return the prepared statement
*/
public PreparedStatement prepareStatement(String sql, boolean isCallable);
Prepare an INSERT statement, specifying how auto-generated (by the database) keys should be handled. Really this
is a boolean, but JDBC opted to define it instead using 2 int constants: Generated keys are accessed afterwards via Statement.getGeneratedKeys
Params: - sql – The INSERT SQL
- autoGeneratedKeys – The autoGeneratedKeys flag
See Also: Returns: the prepared statement
/**
* Prepare an INSERT statement, specifying how auto-generated (by the database) keys should be handled. Really this
* is a boolean, but JDBC opted to define it instead using 2 int constants:<ul>
* <li>{@link PreparedStatement#RETURN_GENERATED_KEYS}</li>
* <li>{@link PreparedStatement#NO_GENERATED_KEYS}</li>
* </ul>
* Generated keys are accessed afterwards via {@link java.sql.PreparedStatement#getGeneratedKeys}
*
* @param sql The INSERT SQL
* @param autoGeneratedKeys The autoGeneratedKeys flag
*
* @return the prepared statement
*
* @see java.sql.Connection#prepareStatement(String, int)
*/
public PreparedStatement prepareStatement(String sql, int autoGeneratedKeys);
Prepare an INSERT statement, specifying columns which are auto-generated values to be returned. Generated keys are accessed afterwards via Statement.getGeneratedKeys
Params: - sql – - the SQL for the statement to be prepared
- columnNames – The name of the columns to be returned in the generated keys result set.
See Also: Returns: the prepared statement
/**
* Prepare an INSERT statement, specifying columns which are auto-generated values to be returned.
* Generated keys are accessed afterwards via {@link java.sql.PreparedStatement#getGeneratedKeys}
*
* @param sql - the SQL for the statement to be prepared
* @param columnNames The name of the columns to be returned in the generated keys result set.
*
* @return the prepared statement
*
* @see java.sql.Connection#prepareStatement(String, String[])
*/
public PreparedStatement prepareStatement(String sql, String[] columnNames);
Get a prepared statement for use in loading / querying.
Params: - sql – The SQL the statement to be prepared
- isCallable – Whether to prepare as a callable statement.
- scrollMode – (optional) scroll mode to be applied to the resulting result set; may be null to indicate
no scrolling should be applied.
Returns: the prepared statement
/**
* Get a prepared statement for use in loading / querying.
*
* @param sql The SQL the statement to be prepared
* @param isCallable Whether to prepare as a callable statement.
* @param scrollMode (optional) scroll mode to be applied to the resulting result set; may be null to indicate
* no scrolling should be applied.
*
* @return the prepared statement
*/
public PreparedStatement prepareQueryStatement(String sql, boolean isCallable, ScrollMode scrollMode);
}