La creación de un PreparedStatements
puede o no implicar la validación de sintaxis SQL o incluso el servidor de base de datos, que depende por completo del controlador JDBC utilizado. Algunos conductores harán una ida y vuelta o validarán, otros no.
Por lo tanto, en algunos controladores JDBC, un PreparedStatement
no está más "preparado" que un Statement
normal. (En otras palabras: con algunos controladores JDBC, PreparedStatement
representa un recurso del lado del servidor (similar a Connection
), mientras que en otros es una construcción pura del lado del cliente).
Sin embargo, una diferencia importante es que PreparedStatement
lo ayudará a manejar valores de parámetros dinámicos de forma que se garantice evitar problemas de escaneo o formateo que tendría si intentara insertar los valores en la cadena de instrucción SQL manualmente y ejecutarlo usando un Statement
normal.
Esa característica es indepdendent de la opción de "preparar" la declaración de antemano o no, por lo que la proporciona cada controlador JDBC, incluso si no realiza ningún otro paso de preparación.
¿dónde esperas el error? en tiempo de compilación, o cuando llama a 'prepare .. (..)' – Bozho
Esto depende de la base de datos y del controlador. La especificación JDBC no dicta esto. – skaffman
cuando llamo prepareStatement – xdevel2000