Actualización de datos de tablas utilizando el método PreparedStatement.executeUpdate
El método Statement.executeUpdate es efectivo si actualiza tablas de servidores de datos con valores constantes. Sin embargo, las actualizaciones a menudo suponen pasar valores contenidos en variables a las tablas. Para hacer esto, utilice el método PreparedStatement.executeUpdate.
Acerca de esta tarea
Con IBM® Data Server Driver for JDBC and SQLJ, también puede utilizar PreparedStatement.executeUpdate para llamar a procedimientos almacenados que tienen parámetros de entrada y ningún parámetro de salida, y que no devuelven ningún conjunto de resultados.
- Entero
- Doble
- Decimal
- Carácter
- Hexadecimal
- Graphic
Para llamadas a procedimientos almacenados que están en IBM Informix® fuentes de datos, el objeto PreparedStatement puede ser una instrucción CALL o una instrucción EXECUTE PROCEDURE.
Cuando ejecuta una sentencia de SQL muchas veces, puede obtener un mejor rendimiento creando la sentencia de SQL en forma de objeto PreparedStatement.
UPDATE EMPLOYEE SET PHONENO='4657' WHERE EMPNO='000010'Suponga que desea generalizar la operación para poder
actualizar la tabla de empleados para un conjunto cualquiera de
números de teléfono y números de empleado. Para ello es necesario que sustituya los valores constantes del
número de teléfono y número de empleado por variables:UPDATE EMPLOYEE SET PHONENO=? WHERE EMPNO=?Las variables de esta clase se denominan marcadores de
parámetros.Procedimiento
Para ejecutar una sentencia de SQL con marcadores de parámetros, debe seguir estos pasos:
Ejemplo
Connection con;
PreparedStatement pstmt;
int numUpd;
…
pstmt = con.prepareStatement(
"UPDATE EMPLOYEE SET PHONENO=? WHERE EMPNO=?");
// Create a PreparedStatement object 1
pstmt.setString(1,"4657"); // Assign first value to first parameter 2
pstmt.setString(2,"000010"); // Assign first value to second parameter
numUpd = pstmt.executeUpdate(); // Perform first update 3
pstmt.setString(1,"4658"); // Assign second value to first parameter
pstmt.setString(2,"000020"); // Assign second value to second parameter
numUpd = pstmt.executeUpdate(); // Perform second update
pstmt.close(); // Close the PreparedStatement object 4
Puede también utilizar el método PreparedStatement.executeUpdate para sentencias que no tienen marcadores de parámetros. Los pasos para ejecutar un objeto " PreparedStatement " sin marcadores de parámetros son similares a los de ejecutar un objeto " PreparedStatement " con marcadores de parámetros, excepto que se omite el paso 2. El ejemplo siguiente muestra estos pasos.
Connection con;
PreparedStatement pstmt;
int numUpd;
…
pstmt = con.prepareStatement(
"UPDATE EMPLOYEE SET PHONENO='4657' WHERE EMPNO='000010'");
// Create a PreparedStatement object 1
numUpd = pstmt.executeUpdate(); // Perform the update 3
pstmt.close(); // Close the PreparedStatement object 4