2. DEFINICIÓN
Un objeto PreparedStatement se
usa para sentencias SQL que toman
uno o más parámetros como
argumentos de entrada (parámetros
IN). Un objeto PreparedStatement
es potencialmente más eficiente que
un objeto Statement porque este ha
sido precompilado y almacenado
para su uso futuro.
3. MÉTODO
EXECUTEUPDATE ()
Ejecuta la instrucción SQL determinada,
que puede ser una instrucción INSERT,
UPDATE o DELETE; o una instrucción
SQL que no devuelve nada, como una
instrucción DDL de SQL. Desde el
controlador JDBC 3.0 de MicrosoftSQL
Server, executeUpdate devolverán el
número correcto de filas actualizado en
una operación MERGE.
4. USO DE
CALLABLESTATEMENT
Un objeto CallableStatement es una
interface JDBC utilizado para llamar
o ejecutar procedimientos
almacenados de la base de datos
desde una aplicación Java.
Antes de usar CallableStatement
debemos saber si nuestro Gestor
de Base de Datos soporta y usa
procedimientos almacenados,
para este propósito el método
supportsStoredProcedures
devolverá true si la DBMS soporta
llamadas a procedimientos
almacenados y el método
getProcedures devolverá una
descripción de los procedimientos
almacenados disponibles.
5. Partimos de la situación inicial de un procedimiento
almacenado que retorna el valor de un inOutParam
incrementado en 1 y la cadena de caracteres pasada via
inputParam como Resultset:
6. Para usar el procedimiento almacenado seguimos los
siguientes pasos:
Preparamos el callable statement usando Connection.prepareCall().
Debemos tener siempre en cuenta que debemos de usar la sintaxis
de escape de JDBC siendo obligatorios los paréntesis que rodean los
parámetros.
1
7. 2
Registramos los parámetros de salida (si existen).
Para recibir los valores de los parámetros de salida (parámetros
especificados como OUT o INOUT cuando se crea el procedimiento),
JDBC requiere que estén especificados antes de la ejecución del
statement usando los distintos modos de registrar un parámetro con
el método registerOutputParameter():
8. 3
Especificamos los parámetros de entrada (si existen).
Los parámetros de entrada y de entrada/salida se especifican como
en los objetos PreparedStatement. Sin embargo, CallableStatement
también soporta especificar los parámetros por nombre:
9. 4
Ejecutamos CallableStatement, y
recibimos cualquier conjunto de
resultados o parámetros de salida.
Mientras CallableStatement soporta
llamar a cualquiera de los métodos de
ejecución de Statement
(executeUpdate(), executeQuery() o
execute() ), el método más flexible es
execute(), ya que no necesita saber de
antemano si el procedimiento
almacenado retorna un conjunto de
resultados:
10. EJEMPLO public class InsertarDatos {
public static void main(String[] args) {
Connection con = null;
PreparedStatement stmt = null;
String sDriver = "com.mysql.jdbc.Driver";
String sURL = "jdbc:mysql://localhost:3306/lineadecodigo";
try{
Class.forName(sDriver).newInstance();
con = DriverManager.getConnection(sURL,"root","");
String sISBN = "84-9815-212-7";
String sTitulo = "Yo, Claudio";
String sDescripcion="Supuesta autobiografía de Claudio";
String sCategoria = "Novela Histórica";
int idAutor = 3;