2012-01-09 14 views
9

Por favor, dime cuál de los dos métodos, executeUpdate y ejecutan es el mejor para una consulta de inserción como insert into users(name, addr, city, sex, dob) values(?,?,?,?,?); Tanto las declaraciones que ejecutar la consulta, pero ¿cuál debería ser idealmente utilizado para una consulta de inserción?Qué usar: executeUpdate() o execute()?

+0

posible duplicado de [PreparedStatement ejecutándose con éxito en Oracle pero lanzando una excepción en Microsoft SQL] (http://stackoverflow.com/questions/8786911/preparedstatement-executing-successfully-in-oracle-but-throwing-exception-in- mic) – axtavt

+0

¿Leíste el javadoc para cada uno? La respuesta está ahí. – skaffman

Respuesta

14

El valor de retorno es diferente. ExecuteUpdate() devuelve el número de filas actualizadas, lo que puede ser útil cuando se ejecuta una declaración de actualización. En su caso, no es necesario, ya que sabe cuántos registros está insertando. Puedes usar cualquiera de los dos.

+0

Así que no hay ventajas como tal en el uso de cualquiera de ellos ¿no? En este caso, no importa qué método se use, ¿verdad? –

+0

Derecha. No importa. – Sjoerd

+0

Ok. Muchas gracias :) –

2

En principio, solo el valor de retorno es diferente. Sin embargo, descubrí que al usar jConnect 3 para acceder a Sybase ASE 15.7, la función execute() no se bloquea hasta que se hayan ejecutado los desencadenadores, y al cerrar PreparedStatement de inmediato se ROLLARÁ la actualización. (Insertar un 1s sleep lo hace funcionar para una consulta que probé). Por el contrario, executeUpdate() no sufre este problema; parece hacer lo correcto y no requiere un descanso arbitrario antes de cerrar PreparedStatement.

Cuestiones relacionadas