Las PreparedStatements amplían la interfaz Statement y proporcionan soporte para añadir parámetros a sentencias SQL.
Las sentencias SQL que se pasan a la base de datos pasan por un proceso de dos pasos al devolver los resultados al usuario. Primero se preparan y, a continuación, se procesan. Con los objetos Statement, estas dos fases aparecen como una sola en las aplicaciones. Las PreparedStatements permiten independizar estos dos procesos. El paso de preparación se produce cuando se crea el objeto, y el paso de proceso se produce cuando se llama a los métodos executeQuery, executeUpdate o execute en el objeto PreparedStatement.
La posibilidad de dividir el proceso SQL en fases independientes no tiene sentido sin la adición de marcadores de parámetro. Los marcadores de parámetro se colocan en una aplicación para que esta pueda indicar a la base de datos que no tiene un valor específico durante la preparación, pero que proporciona uno durante el proceso. En las sentencias SQL, los marcadores de parámetro se representan mediante signos de interrogación.
Los marcadores de parámetro posibilitan la creación de sentencias SQL generales que se utilizan para peticiones específicas. Por ejemplo, considere la siguiente sentencia de consulta SQL:
SELECT * FROM EMPLOYEE_TABLE WHERE LASTNAME = 'DETTINGER'
Se trata de una sentencia SQL específica que devuelve un solo valor; es decir, la información relativa a un empleado llamado Dettinger. Si se añade un marcador de parámetro, la sentencia puede ser más flexible:
SELECT * FROM EMPLOYEE_TABLE WHERE LASTNAME = ?
Estableciendo simplemente el marcador de parámetro en un valor, puede obtenerse información acerca de cualquier empleado de la tabla.
Las PreparedStatements proporcionan mejoras de rendimiento significativas con respecto a las Statements; el ejemplo de Statement anterior puede pasar por la fase de preparación una sola vez y, a continuación, procesarse repetidamente con valores diferentes para el parámetro.
Para obtener más información sobre cómo utilizar sentencias preparadas, incluida la creación de sentencias preparadas, especificar características del conjunto de resultados, trabajar con claves generadas automáticamente y establecer marcas de parámetros, consulte las páginas siguientes: