SlideShare una empresa de Scribd logo
1 de 9
ESCUELA PROFESIONAL DE
INGENIERÍA DE SISTEMAS Y TELEMÁTICA
STATEMENT
ÁREA : Desarrollo de Software I.
DOCENTE : Ing. Marco Aurelio Porro Chulli.
ESTUDIANTES : . Ocaña Bueno Lisbeth.
. Herrera Silva Carlos Jhónatan.
CICLO : V
GRUPO : “A”
STATEMENT:
Definición:
Un objeto Statement se usa para enviar sentencias
SQL a la base de datos. Actualmente hay tres tipos
de objetos Statement, todos los cuales actúan como
contenedores para la ejecución de sentencias en
una conexión dada: Statement, PreparedStatement
que hereda de Statement y CallableStatement que
hereda de PreparedStatement. Estas están
especializadas para enviar tipos particulares de
sentencias SQL, Un objeto Statement se usa para
ejecutar una sentencia SQL simple sin parámetros.
Un objeto PreparedStatement se usa para ejecutar
sentencias SQL precompiladas con o sin parámetros
IN; y un objeto CallableStatement se usa para
ejecutar un procedimiento de base de datos
almacenado.
Objetos Statement:
El objeto Statement (sentencia) sirve para procesar una sentencia SQL estática
y obtener los resultados producidos por ella. Solo puede haber un ResultSet
abierto para cada objeto Statement en un momento dado. Todos los métodos
statement que procesan una sentencia SQL cierran implícitamente el ResultSet
actual de una sentencia si existe uno abierto.
Creación de objetos Statement:
Creación de objetos Statement:
Una vez establecida la conexión con una base de datos particular, esta
conexión puede usarse para enviar sentencias SQL. Un objeto Statement se
crea mediante el método de Connection createStatement, como podemos ver
en el siguiente fragmento de código.
Connection con = DriverManager.getConnection(url, "sunny", "");
Statement stmt = con.createStatement();
Ejecución de sentencias usando objetos Statement:
La interface Statement nos suministra tres métodos diferentes para ejecutar sentencias SQL,
executeQuery, executeUpdate y execute. El método a usar está determinado por el producto de la
sentencia SQL.
El método executeQuery está diseñado para sentencias que producen como resultado un único
ResultSet tal como las sentencias SELECT.
El método executeUpdate se usa para ejecutar sentencias INSERT, UPDATE ó DELETE así como
sentencias SQL DDL (Data Definition Language) como CREATE TABLE o DROP TABLE. El efecto de
una sentencia INSERT, UPDATE o DELETE es una modificación de una o más columnas en cero o más
filas de una tabla.
El método Execute se usa para ejecutar sentencias que devuelven más de un ResultSet, más que un
Update Count o una combinación de ambos. Como es esta una característica avanzada que muchos
programadores no necesitaran, nunca se verá en su propia sección.
Todos los métodos que ejecutan sentencias cierran los objetos Resultset abiertos como resultado de las
llamadas a Statement. Esto quiere decir que es necesario completar el proceso con el actual objeto
Resulset antes de reejecutar una sentencia Statement.
Realización de Statement:
Cuando una conexión está en modo auto-commit, las sentencias ejecutadas son ‘comitadas’ o rechazadas cuando se
completan. Una sentencia se considera completa cuando ha sido ejecutada y se han devuelto todos los resultados. Pare
el método executeQuery, que devuelve un único result set, la sentencia se completa cuando todas las filas del objeto
ResultSet se han devuelto. Para el método executeUpdate, una sentencia se completa cuando se ejecuta. En los raros
casos en que se llama al método execute, de cualquier modo, no se completa hasta que los resultsets o updatecounts que
se generan han sido devueltos.
Cerrar objetos Statement:
Los objetos Statement se cerrarán automáticamente por el colector de basura de Java (garbage collector). No obstante,
se recomienda como una buena práctica de programación que se cierren explicitamente cuando no sean ya necesarios.
Esto libera recursos DBMS inmediatamente y ayuda a evitar potenciales problemas de memoria.
Sintaxis de Escape SQL en objetos Statement:
Los objetos Statement pueden contener sentencias SQL que usen sintaxis de escape SQL. La sintaxis de escape señala
al driver que el código que lleva debe ser tratado diferentemente. El driver buscará por cualquier sintaxis de escape y lo
traducirá en código que entiende la base de datos en particular. Esto hace que la sintaxis de escape sea independiente de
la DBMS y permite al programador usar características que de otro modo no estarían disponibles.
PreparedStatements:
Las PreparedStatements amplían la interfaz Statement y proporcionan soporte para añadir parámetros a sentencias
SQL.
Las sentencias SQL que se pasan a la base de datos pasan por un proceso de dos pasos al devolver los resultados al
usuario. Primero se preparan y, a continuación, se procesan. Con los objetos Statement, estas dos fases aparecen
como una sola en las aplicaciones. Las PreparedStatements permiten independizar estos dos procesos. El paso de
preparación se produce cuando se crea el objeto, y el paso de proceso se produce cuando se llama a los métodos
executeQuery, executeUpdate o execute en el objeto PreparedStatement.
Crear y utilizar PreparedStatements:
Para crear objetos PreparedStatement nuevos, se utiliza el método prepareStatement. A diferencia de en el método
createStatement, la sentencia SQL debe suministrarse al crear el objeto PreparedStatement. En ese momento, la
sentencia SQL se precompila para su utilización.
Procesar PreparedStatements:
El proceso de sentencias SQL con un objeto PreparedStatement se realiza mediante los métodos executeQuery,
executeUpdate y execute, al igual que el proceso de objetos Statement. A diferencia de las versiones de Statement, no
se pasan parámetros en estos métodos debido a que la sentencia SQL ya se ha suministrado al crear el objeto. Dado
que PreparedStatement amplía Statement, las aplicaciones pueden intentar llamar a versiones de los métodos
executeQuery, executeUpdate y execute que toman una sentencia SQL. Esta operación provoca el lanzamiento de una
excepción SQLException.
CallableStatements:
La interfaz CallableStatement de JDBC amplía PreparedStatement y proporciona soporte para
parámetros de salida y de entrada/salida. La interfaz CallableStatement tiene también soporte para
parámetros de entrada, que proporciona la interfaz PreparedStatement.
La interfaz CallableStatement permite la utilización de sentencias SQL para llamar a
procedimientos almacenados. Los procedimientos almacenados son programas que tienen una
interfaz de base de datos. Estos programas tienen lo siguiente:
Pueden tener parámetros de entrada y de salida, o parámetros que son tanto de entrada como de
salida.
Pueden tener un valor de retorno.
Tienen la capacidad de devolver varios ResultSets.
Las CallableStatements, debido a que siguen el modelo de PreparedStatement (que consiste en
desacoplar las fases de preparación y proceso), permiten la reutilización optimizada (los detalles
están en: PreparedStatements). Dado que las sentencias SQL de un procedimiento almacenado
están enlazadas a un programa, se procesan como SQL estático, y con ello puede obtenerse un
rendimiento superior.
PROPIEDADES:
Una cláusula de escape se enmarca entre llaves y tiene una palabra clave: {keyword . . . parameters . . .}. La palabra clave (keyword)
indica el tipo de cláusula de escape, según se muestra:
“Escape” para caracteres LIKE; Los caracteres “%” y “_” trabajan como wildcards en la cláusula SQL LIKE (“%” significa cero o más
caracteres y “_” significa exactamente un carácter”.
“Fn” para funciones escalares; Casi todas las DBMS tienen funciones numèricas, de cadena, de fecha y conversión sobre valores
escalares. Una de estas funciones puede usarse colocándola en la sintaxis de escape con la clave fn seguida del nombre de la función
deseada y sus argumentos.
Las funciones escalares pueden estar soportadas por diferentes DBMS con ligeras diferencias de sintaxis, y pueden no estar disponibles
en todos los drivers. Varios métodos de DatabaseMetaData nos listarán las funciones que están soportadas. Por ejemplo, el método
getNumericFunctions devuelve una lista de los nombres de las funciones numéricas separadas por comas, el método getStringFunction
nos devuelve los nombres de las funciones de cadena, y así varías más.
“D, T y TS” para literales de fecha y tiempo. Las DBMS difieren en la sintaxis que usan para los literales de fecha, tiempo y timestamp.
JDBC soporta un formato estándar ISO para estos literales y usa una cláusula de escape que el driver debe traducir a la representación
del DBMS. Por ejemplo, una fecha se especifica en SQL JDBC mediante la sintaxis:
{d `yyyy-mm-dd'}
En esta sintaxis, yyyy es el año, mm es el mes y dd es el dia. El driver reemplazará la cláusula de escape por la representación propia
equivalente de la DBMS. Por ejemplo, el driver reemplazaría {d 1999-02-28} por ’28-FEB-99’ si este es el formato apropiado para la base
subyacente.
EJEMPLOS:
Establecemos la conexión con la base de datos:
Connection conexion = DriverManager.getConnection ("jdbc:mysql://localhost/prueba","root", "la_clave");
// Preparamos la consulta
Statement s = conexion.createStatement();
ResultSet rs = s.executeQuery ("select * from persona");
// Recorremos el resultado, mientras haya registros para leer, y escribimos el resultado en pantalla.
while (rs.next())
{
System.out.println (rs.getInt (1) + " " + rs.getString (2)+ " " + rs.getDate(3));
}
// Cerramos la conexion a la base de datos.
conexion.close();

Más contenido relacionado

La actualidad más candente (18)

Diapositivas objeto statement
Diapositivas objeto statementDiapositivas objeto statement
Diapositivas objeto statement
 
Statement
StatementStatement
Statement
 
Bloques
BloquesBloques
Bloques
 
Jhonzambrano-dhalinpalomino
Jhonzambrano-dhalinpalominoJhonzambrano-dhalinpalomino
Jhonzambrano-dhalinpalomino
 
Clase n°2 3-4 java
Clase n°2 3-4 javaClase n°2 3-4 java
Clase n°2 3-4 java
 
103305862 t-sql
103305862 t-sql103305862 t-sql
103305862 t-sql
 
Curso Oracle11g Lenguaje PL/SQL Avanzado
Curso Oracle11g Lenguaje PL/SQL AvanzadoCurso Oracle11g Lenguaje PL/SQL Avanzado
Curso Oracle11g Lenguaje PL/SQL Avanzado
 
Presentacion PL/SQL
Presentacion PL/SQLPresentacion PL/SQL
Presentacion PL/SQL
 
Procedimientos almacenados en MySQL
Procedimientos almacenados en MySQLProcedimientos almacenados en MySQL
Procedimientos almacenados en MySQL
 
Act4 screencast-bdatos cmch
Act4 screencast-bdatos cmchAct4 screencast-bdatos cmch
Act4 screencast-bdatos cmch
 
Curso Java Resumen - Curso 2005-2006
Curso Java Resumen - Curso 2005-2006Curso Java Resumen - Curso 2005-2006
Curso Java Resumen - Curso 2005-2006
 
PROCEDIMIENTOS ALMACENADOS
PROCEDIMIENTOS ALMACENADOSPROCEDIMIENTOS ALMACENADOS
PROCEDIMIENTOS ALMACENADOS
 
Curso de pl sql básico
Curso de pl sql básicoCurso de pl sql básico
Curso de pl sql básico
 
Definición de-espacio-de-nombres
Definición de-espacio-de-nombresDefinición de-espacio-de-nombres
Definición de-espacio-de-nombres
 
Sql Procedural
Sql ProceduralSql Procedural
Sql Procedural
 
Cap I Plsql
Cap I PlsqlCap I Plsql
Cap I Plsql
 
Espacio de nombres System.Data.SQLClient
Espacio de nombres System.Data.SQLClientEspacio de nombres System.Data.SQLClient
Espacio de nombres System.Data.SQLClient
 
Intro sql y plsql
Intro sql y plsqlIntro sql y plsql
Intro sql y plsql
 

Destacado

спортивный праздник.
спортивный праздник.спортивный праздник.
спортивный праздник.virtualtaganrog
 
Cadenas alimenticias
Cadenas alimenticiasCadenas alimenticias
Cadenas alimenticiasDiana Godos
 
ο Μυστράς
ο Μυστράςο Μυστράς
ο Μυστράςgympentelis
 
Kazakhstan technical norms 283
Kazakhstan technical norms 283Kazakhstan technical norms 283
Kazakhstan technical norms 283Ryan Wright
 
074 almudassir
074 almudassir074 almudassir
074 almudassirmustafa002
 
Tutorial cisco packet tracer
Tutorial cisco packet tracerTutorial cisco packet tracer
Tutorial cisco packet tracerTanwir Usmayda
 
Seth Brown Resume and Cover Letter GENERIC
Seth Brown Resume and Cover Letter GENERICSeth Brown Resume and Cover Letter GENERIC
Seth Brown Resume and Cover Letter GENERICSeth Brown
 
Hip Fractures And The Falls That Cause Them
Hip Fractures And The Falls That Cause ThemHip Fractures And The Falls That Cause Them
Hip Fractures And The Falls That Cause ThemDebbie Jones
 
LPEI_ZCNI_Poster
LPEI_ZCNI_PosterLPEI_ZCNI_Poster
LPEI_ZCNI_PosterLong Pei
 
Biologia molecular reparac
Biologia molecular reparacBiologia molecular reparac
Biologia molecular reparacsharcastill
 

Destacado (16)

презентация5
презентация5презентация5
презентация5
 
спортивный праздник.
спортивный праздник.спортивный праздник.
спортивный праздник.
 
Cadenas alimenticias
Cadenas alimenticiasCadenas alimenticias
Cadenas alimenticias
 
ο Μυστράς
ο Μυστράςο Μυστράς
ο Μυστράς
 
Kazakhstan technical norms 283
Kazakhstan technical norms 283Kazakhstan technical norms 283
Kazakhstan technical norms 283
 
074 almudassir
074 almudassir074 almudassir
074 almudassir
 
078 annaba
078 annaba078 annaba
078 annaba
 
Cuadros y graficas
Cuadros y graficasCuadros y graficas
Cuadros y graficas
 
Waldinger 3
Waldinger 3Waldinger 3
Waldinger 3
 
Tutorial cisco packet tracer
Tutorial cisco packet tracerTutorial cisco packet tracer
Tutorial cisco packet tracer
 
огород сайт
огород сайтогород сайт
огород сайт
 
Seth Brown Resume and Cover Letter GENERIC
Seth Brown Resume and Cover Letter GENERICSeth Brown Resume and Cover Letter GENERIC
Seth Brown Resume and Cover Letter GENERIC
 
Hip Fractures And The Falls That Cause Them
Hip Fractures And The Falls That Cause ThemHip Fractures And The Falls That Cause Them
Hip Fractures And The Falls That Cause Them
 
Photo Parsa Album 103
Photo Parsa Album 103Photo Parsa Album 103
Photo Parsa Album 103
 
LPEI_ZCNI_Poster
LPEI_ZCNI_PosterLPEI_ZCNI_Poster
LPEI_ZCNI_Poster
 
Biologia molecular reparac
Biologia molecular reparacBiologia molecular reparac
Biologia molecular reparac
 

Similar a Statement (20)

Statement
StatementStatement
Statement
 
Statement
StatementStatement
Statement
 
Statement
StatementStatement
Statement
 
Statement
StatementStatement
Statement
 
Java con base de datos
Java con base de datosJava con base de datos
Java con base de datos
 
statement
statementstatement
statement
 
Statement
Statement Statement
Statement
 
Dispositivas de la clase statement
Dispositivas de la clase statementDispositivas de la clase statement
Dispositivas de la clase statement
 
Statement
StatementStatement
Statement
 
ee
eeee
ee
 
Statement
StatementStatement
Statement
 
Statement
StatementStatement
Statement
 
Statement
StatementStatement
Statement
 
Java con Base de Datos
Java con Base de Datos Java con Base de Datos
Java con Base de Datos
 
Tema statement
Tema statementTema statement
Tema statement
 
Preparestatement
PreparestatementPreparestatement
Preparestatement
 
Statement
StatementStatement
Statement
 
java con base de datos
java con base de datos java con base de datos
java con base de datos
 
JAVA CON BASE DE DATOS
JAVA CON BASE DE DATOSJAVA CON BASE DE DATOS
JAVA CON BASE DE DATOS
 
Ms SQL Server
Ms SQL ServerMs SQL Server
Ms SQL Server
 

Más de Lisbeth Ocaña Bueno (20)

OLAP - Procesamiento Analítico en Línea.
OLAP - Procesamiento Analítico en Línea.OLAP - Procesamiento Analítico en Línea.
OLAP - Procesamiento Analítico en Línea.
 
COPIA DE SEGURIDAD Y RESTAURACIÓN.
COPIA DE SEGURIDAD Y RESTAURACIÓN.COPIA DE SEGURIDAD Y RESTAURACIÓN.
COPIA DE SEGURIDAD Y RESTAURACIÓN.
 
TRANSACCIONES
TRANSACCIONESTRANSACCIONES
TRANSACCIONES
 
TRIGGERS O DISPARADORES
TRIGGERS O DISPARADORESTRIGGERS O DISPARADORES
TRIGGERS O DISPARADORES
 
CURSORES EN SQL SERVER
CURSORES EN SQL SERVERCURSORES EN SQL SERVER
CURSORES EN SQL SERVER
 
PROCEDIMIENTOS ALMACENADOS
PROCEDIMIENTOS ALMACENADOSPROCEDIMIENTOS ALMACENADOS
PROCEDIMIENTOS ALMACENADOS
 
Comandos DDL
Comandos DDLComandos DDL
Comandos DDL
 
VISTAS
VISTASVISTAS
VISTAS
 
LENGUAJE TRANSACT - SQL
LENGUAJE TRANSACT - SQLLENGUAJE TRANSACT - SQL
LENGUAJE TRANSACT - SQL
 
Ejecutables en Netbeans
Ejecutables en NetbeansEjecutables en Netbeans
Ejecutables en Netbeans
 
REPORTES
REPORTESREPORTES
REPORTES
 
Objeto sqlcommand
Objeto sqlcommandObjeto sqlcommand
Objeto sqlcommand
 
OBJETO CONNECTION
OBJETO CONNECTIONOBJETO CONNECTION
OBJETO CONNECTION
 
ESPACIO DE NOMBRES SYSTEM.DATA.SQLCLIENT
ESPACIO DE NOMBRES SYSTEM.DATA.SQLCLIENTESPACIO DE NOMBRES SYSTEM.DATA.SQLCLIENT
ESPACIO DE NOMBRES SYSTEM.DATA.SQLCLIENT
 
Ado.net
Ado.netAdo.net
Ado.net
 
Gestor de Base de Datos.
Gestor de Base de Datos.Gestor de Base de Datos.
Gestor de Base de Datos.
 
Programación orientada a objetos
Programación orientada a objetosProgramación orientada a objetos
Programación orientada a objetos
 
Aplicaciones n capas en visual.net
Aplicaciones n capas en visual.netAplicaciones n capas en visual.net
Aplicaciones n capas en visual.net
 
Prepared statement
Prepared statementPrepared statement
Prepared statement
 
JTABLE
JTABLEJTABLE
JTABLE
 

Statement

  • 1. ESCUELA PROFESIONAL DE INGENIERÍA DE SISTEMAS Y TELEMÁTICA STATEMENT ÁREA : Desarrollo de Software I. DOCENTE : Ing. Marco Aurelio Porro Chulli. ESTUDIANTES : . Ocaña Bueno Lisbeth. . Herrera Silva Carlos Jhónatan. CICLO : V GRUPO : “A”
  • 2. STATEMENT: Definición: Un objeto Statement se usa para enviar sentencias SQL a la base de datos. Actualmente hay tres tipos de objetos Statement, todos los cuales actúan como contenedores para la ejecución de sentencias en una conexión dada: Statement, PreparedStatement que hereda de Statement y CallableStatement que hereda de PreparedStatement. Estas están especializadas para enviar tipos particulares de sentencias SQL, Un objeto Statement se usa para ejecutar una sentencia SQL simple sin parámetros. Un objeto PreparedStatement se usa para ejecutar sentencias SQL precompiladas con o sin parámetros IN; y un objeto CallableStatement se usa para ejecutar un procedimiento de base de datos almacenado.
  • 3. Objetos Statement: El objeto Statement (sentencia) sirve para procesar una sentencia SQL estática y obtener los resultados producidos por ella. Solo puede haber un ResultSet abierto para cada objeto Statement en un momento dado. Todos los métodos statement que procesan una sentencia SQL cierran implícitamente el ResultSet actual de una sentencia si existe uno abierto. Creación de objetos Statement: Creación de objetos Statement: Una vez establecida la conexión con una base de datos particular, esta conexión puede usarse para enviar sentencias SQL. Un objeto Statement se crea mediante el método de Connection createStatement, como podemos ver en el siguiente fragmento de código. Connection con = DriverManager.getConnection(url, "sunny", ""); Statement stmt = con.createStatement();
  • 4. Ejecución de sentencias usando objetos Statement: La interface Statement nos suministra tres métodos diferentes para ejecutar sentencias SQL, executeQuery, executeUpdate y execute. El método a usar está determinado por el producto de la sentencia SQL. El método executeQuery está diseñado para sentencias que producen como resultado un único ResultSet tal como las sentencias SELECT. El método executeUpdate se usa para ejecutar sentencias INSERT, UPDATE ó DELETE así como sentencias SQL DDL (Data Definition Language) como CREATE TABLE o DROP TABLE. El efecto de una sentencia INSERT, UPDATE o DELETE es una modificación de una o más columnas en cero o más filas de una tabla. El método Execute se usa para ejecutar sentencias que devuelven más de un ResultSet, más que un Update Count o una combinación de ambos. Como es esta una característica avanzada que muchos programadores no necesitaran, nunca se verá en su propia sección. Todos los métodos que ejecutan sentencias cierran los objetos Resultset abiertos como resultado de las llamadas a Statement. Esto quiere decir que es necesario completar el proceso con el actual objeto Resulset antes de reejecutar una sentencia Statement.
  • 5. Realización de Statement: Cuando una conexión está en modo auto-commit, las sentencias ejecutadas son ‘comitadas’ o rechazadas cuando se completan. Una sentencia se considera completa cuando ha sido ejecutada y se han devuelto todos los resultados. Pare el método executeQuery, que devuelve un único result set, la sentencia se completa cuando todas las filas del objeto ResultSet se han devuelto. Para el método executeUpdate, una sentencia se completa cuando se ejecuta. En los raros casos en que se llama al método execute, de cualquier modo, no se completa hasta que los resultsets o updatecounts que se generan han sido devueltos. Cerrar objetos Statement: Los objetos Statement se cerrarán automáticamente por el colector de basura de Java (garbage collector). No obstante, se recomienda como una buena práctica de programación que se cierren explicitamente cuando no sean ya necesarios. Esto libera recursos DBMS inmediatamente y ayuda a evitar potenciales problemas de memoria. Sintaxis de Escape SQL en objetos Statement: Los objetos Statement pueden contener sentencias SQL que usen sintaxis de escape SQL. La sintaxis de escape señala al driver que el código que lleva debe ser tratado diferentemente. El driver buscará por cualquier sintaxis de escape y lo traducirá en código que entiende la base de datos en particular. Esto hace que la sintaxis de escape sea independiente de la DBMS y permite al programador usar características que de otro modo no estarían disponibles.
  • 6. PreparedStatements: Las PreparedStatements amplían la interfaz Statement y proporcionan soporte para añadir parámetros a sentencias SQL. Las sentencias SQL que se pasan a la base de datos pasan por un proceso de dos pasos al devolver los resultados al usuario. Primero se preparan y, a continuación, se procesan. Con los objetos Statement, estas dos fases aparecen como una sola en las aplicaciones. Las PreparedStatements permiten independizar estos dos procesos. El paso de preparación se produce cuando se crea el objeto, y el paso de proceso se produce cuando se llama a los métodos executeQuery, executeUpdate o execute en el objeto PreparedStatement. Crear y utilizar PreparedStatements: Para crear objetos PreparedStatement nuevos, se utiliza el método prepareStatement. A diferencia de en el método createStatement, la sentencia SQL debe suministrarse al crear el objeto PreparedStatement. En ese momento, la sentencia SQL se precompila para su utilización. Procesar PreparedStatements: El proceso de sentencias SQL con un objeto PreparedStatement se realiza mediante los métodos executeQuery, executeUpdate y execute, al igual que el proceso de objetos Statement. A diferencia de las versiones de Statement, no se pasan parámetros en estos métodos debido a que la sentencia SQL ya se ha suministrado al crear el objeto. Dado que PreparedStatement amplía Statement, las aplicaciones pueden intentar llamar a versiones de los métodos executeQuery, executeUpdate y execute que toman una sentencia SQL. Esta operación provoca el lanzamiento de una excepción SQLException.
  • 7. CallableStatements: La interfaz CallableStatement de JDBC amplía PreparedStatement y proporciona soporte para parámetros de salida y de entrada/salida. La interfaz CallableStatement tiene también soporte para parámetros de entrada, que proporciona la interfaz PreparedStatement. La interfaz CallableStatement permite la utilización de sentencias SQL para llamar a procedimientos almacenados. Los procedimientos almacenados son programas que tienen una interfaz de base de datos. Estos programas tienen lo siguiente: Pueden tener parámetros de entrada y de salida, o parámetros que son tanto de entrada como de salida. Pueden tener un valor de retorno. Tienen la capacidad de devolver varios ResultSets. Las CallableStatements, debido a que siguen el modelo de PreparedStatement (que consiste en desacoplar las fases de preparación y proceso), permiten la reutilización optimizada (los detalles están en: PreparedStatements). Dado que las sentencias SQL de un procedimiento almacenado están enlazadas a un programa, se procesan como SQL estático, y con ello puede obtenerse un rendimiento superior.
  • 8. PROPIEDADES: Una cláusula de escape se enmarca entre llaves y tiene una palabra clave: {keyword . . . parameters . . .}. La palabra clave (keyword) indica el tipo de cláusula de escape, según se muestra: “Escape” para caracteres LIKE; Los caracteres “%” y “_” trabajan como wildcards en la cláusula SQL LIKE (“%” significa cero o más caracteres y “_” significa exactamente un carácter”. “Fn” para funciones escalares; Casi todas las DBMS tienen funciones numèricas, de cadena, de fecha y conversión sobre valores escalares. Una de estas funciones puede usarse colocándola en la sintaxis de escape con la clave fn seguida del nombre de la función deseada y sus argumentos. Las funciones escalares pueden estar soportadas por diferentes DBMS con ligeras diferencias de sintaxis, y pueden no estar disponibles en todos los drivers. Varios métodos de DatabaseMetaData nos listarán las funciones que están soportadas. Por ejemplo, el método getNumericFunctions devuelve una lista de los nombres de las funciones numéricas separadas por comas, el método getStringFunction nos devuelve los nombres de las funciones de cadena, y así varías más. “D, T y TS” para literales de fecha y tiempo. Las DBMS difieren en la sintaxis que usan para los literales de fecha, tiempo y timestamp. JDBC soporta un formato estándar ISO para estos literales y usa una cláusula de escape que el driver debe traducir a la representación del DBMS. Por ejemplo, una fecha se especifica en SQL JDBC mediante la sintaxis: {d `yyyy-mm-dd'} En esta sintaxis, yyyy es el año, mm es el mes y dd es el dia. El driver reemplazará la cláusula de escape por la representación propia equivalente de la DBMS. Por ejemplo, el driver reemplazaría {d 1999-02-28} por ’28-FEB-99’ si este es el formato apropiado para la base subyacente.
  • 9. EJEMPLOS: Establecemos la conexión con la base de datos: Connection conexion = DriverManager.getConnection ("jdbc:mysql://localhost/prueba","root", "la_clave"); // Preparamos la consulta Statement s = conexion.createStatement(); ResultSet rs = s.executeQuery ("select * from persona"); // Recorremos el resultado, mientras haya registros para leer, y escribimos el resultado en pantalla. while (rs.next()) { System.out.println (rs.getInt (1) + " " + rs.getString (2)+ " " + rs.getDate(3)); } // Cerramos la conexion a la base de datos. conexion.close();