Las consultas preparadas están representadas por la clase PrepareStatement.
Son consultas precompiladas, por lo que son más eficientes, y pueden tener parámetros.
Una consulta se instancia del modo que vemos con un ejemplo:
PreparedStatement pstmt = con.prepareStatement("SELECT * from medicamentos");
Para las consultas que se realizan muy a menudo es aconsejable usar este tipo de consultas, de modo que el rendimiento del sistema será mejor de esta manera.
Si hay que emplear parámetros en una consulta, se puede hacer usando el carácter ‘?’. Por ejemplo, para realizar una consulta de un producto que tenga un código determinado, haríamos la consulta siguiente:
PreparedStatement pstmt = con.prepareStatement("SELECT * from productos WHERE codigo = ? ");
Establecemos los parámetros de una consulta utilizando métodos set que dependen del tipo SQL de la columna.
Así, le decimos que el primer parámetro, que es el único que tiene esta consulta, es “786”:
pstmt.setString(1, "786");
El primer argumento de este método es la posición del parámetro dentro de la consulta.
Finalmente, ejecutamos la consulta utilizando el método executeQuery() o executeUpdate(), ambos sin parámetros, dependiendo del tipo de consulta.