2010-07-08 12 views
6

Tengo las siguientes preguntas sobre declaraciones preparadas en Java.Declaraciones preparadas y controladores JDBC

  1. ¿Es beneficioso utilizar declaraciones preparadas cuando la consulta SQL no tiene ninguna cláusula Where? Supongamos una consulta simple Seleccione * de tablename;

  2. Se dice que la declaración preparada se compila una vez y solo los valores se sustituyen la segunda vez. Por lo tanto, es más rápido ya que se pueden omitir los pasos de validación y compilación de consultas. ¿Dónde se almacena el formulario compilado? ¿Cuál es el tiempo de vida de esta forma compilada?

+1

buen detalle acerca de la pre-compilación: [http://stackoverflow.com/questions/5497297/what-does-pre-compiling-a-jdbc-preparedstatement-do][1] [1 ]: http://stackoverflow.com/questions/5497297/what-does-pre-compiling-a-jdbc-preparedstatement-do – Awan

Respuesta

2
  1. Un PreparedStatement es beneficioso cuando hay parámetros que se pasarán y cuando la consulta es para ser ejecutado en varias ocasiones. Si hay una consulta simple para ser disparada una vez, un Statement será más rápido.

  2. El almacenamiento en caché tiene lugar en el servidor de bases de datos. El servidor de bases de datos tiene API que ayudan a almacenar en caché las consultas compiladas. Por lo tanto, para la ejecución repetida de consultas, la misma consulta compilada se ejecutará nuevamente e impulsará el rendimiento.

+0

Incluso se tiene que compilar un simple "select * from tablename" y calcular un plan de ejecución. La ganancia puede no ser tremenda aunque El formulario compilado nunca se debe volver a calcular, pero el plan de ejecución puede, según los cambios en las tablas o los índices implicados. –

+0

El artículo # 2 no es del todo cierto. El servidor de aplicaciones puede proporcionar su propio caché PreparedStatement, Weblogic es uno de ellos. – RealHowTo

2
  1. Uso PreparedStatement cada vez que hay una entrada o más por parte del usuario. Le ayudará a escapar de los caracteres necesarios para evitar la inyección de SQL y los errores en las consultas.
Cuestiones relacionadas