UNIVERSIDAD POLITÉCNICA AMAZÓNICA
INGENIERÍA DE SISTEMAS Y
TELEMATICA
DOCENTE : Marco Aurelio Porro Chulli.
ASIGNATURA : Desarrollo de Software I.
GRUPO : “A”
INTEGRANTES :
Yanina Bustamante Jibaja.
Yenny Isabel Cuello Morón.
I.
Statement
1. Contenido
La
clase 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.
|
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.
La
interface Statement suministra métodos básicos para ejecutar sentencias y
devolver resultados. La interface PreparedStatement añade métodos para
trabajar con los parámetros IN; y la interface CallableStatement añade
métodos para trabajar con parameters OUT.
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 stm = con.createStatement();Realización de Statement
La
sentencia SQL que será enviada a la base de datos es alimentada como un
argumento a uno de los métodos de ejecución del objeto Statement.
Por
ejemplo:
ResultSet
rs = stmt.executeQuery("SELECT a, b, c FROM Table2");
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 result set 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 valor devuelto de executeUpdate es un
entero que indica el número de filas que han sido afectadas (referido como
update count). Para sentencias tales como CREATE TABLE o DROP TABLE, que no
operan sobre filas, le valor devuelto por executeUpdate es siempre cero.
El método execute: Se usa para ejecutar
sentencias que devuelven más de un result set, 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.
Debe
notarse que la interface PreparedStatement, que hereda los métodos de la interface
Statement, tiene sus propias versiones de los métodos executeQuery,
executeUpdate y execute. Los objetos Statement en sí mismos no contienen una
sentencia SQL, por tanto, debe suministrarse como un argumento a los métodos Statement.
Execute. Los objetos PreparedStatement no suministran una sentencia SQL como
argumento a estos métodos puesto que ya tienen la sentencia precompilada. Los
objetos CallableStatement heredan las formas de estos métodos de
PreparedStatement. Usar un parámetro de query con las versiones de los
métodos de PreparedStatement o CallableStatement producirá una SQLException.
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 result sets o update counts que se generan han sido
devueltos.
Algunos
DBMS tratan cada sentencia en un procedimiento almacenado como sentencias
separadas. Otros tratan el procedimiento entero como una sentencia compuesta.
Esta diferencia se convierte en importante cuando está activo el modo
auto-commit porque afecta cuando se llama al método commit. En el primer
caso, cada sentencia individual es commitada. En el segundo, se commiten
todas juntas.
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 explícitamente cuando no sean ya necesarios.
Esto libera recursos DBMS inmediatamente y ayuda a evitar potenciales
problemas de memoria.
Ejemplo:
//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 conexión de base de datos.
Conexión.close()
2. Resumen
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.
3. Summary
It serves
to process a static SQL statement and obtaining the results produced by it.
There can only be an open ResultSet object for each Statement at any given
time.
4. Recomendaciones
o
El
método statement para ejecutarla depende del tipo de sentencia SQL que
contenga
o
Debemos
tener en cuenta que las sentencias se cierran con el método
public void
close() trows java.sql.SQLException.
5. Conclusión
Todas la
variables de conexión (cn), Statement (St) y ResultSet(reg) fueron declaradas
fuera de todos los métodos, es decir son globales y pueden verse en toda la
clase no importa en qué proceso lo utilicemos, y para saldar la duda,
anteriormente dije que todos estos son métodos, así es pero por que ejecutar
y consulta los llame funciones, es sencillo recordemos algo de teoría, toda
función retorna un valor es por ello que se le llama funciones a ejecutar y a
consulta por que regresan el valor de la variable error y respectivamente.
6. Apreciación
del Equipo
Esta clase Statement es muy importante
porque a través de la conexión nos comunicamos con la Base de Datos,
enviándole sentencias SQL.
7. Glosario
de Términos
Parámetros: representa un dato que se ofrece una función
con un fin específico. Por ejemplo, una rutina que tenga como finalidad
devolver el número más alto de una lista, esperará que le pasemos dicho
conjunto de valores como parámetro para realizar su tarea.
Hereda: La herencia facilita la
creación de objetos a partir de otros ya existentes e implica que una
subclase obtiene todo el comportamiento (métodos) y eventualmente los
atributos (variables) de su superclase.
Extensión: es una cadena de caracteres anexada al nombre de
un archivo, usualmente precedida por un punto. Su función principal es
diferenciar el contenido del archivo de modo que el sistema operativo
disponga el procedimiento necesario para ejecutarlo o interpretarlo, sin
embargo, la extensión es solamente parte del nombre del archivo y no
representa ningún tipo de obligación respecto a su contenido
Servidor: es una aplicación en ejecución (software) capaz
de atender las peticiones de un cliente y devolverle una respuesta en
concordancia. Los servidores se pueden ejecutar en cualquier tipo de
computadora.
Interfaz: En informática se utiliza para nombrar a la
conexión funcional entre dos sistemas o dispositivos de cualquier tipo dando
una comunicación entre distintos niveles. Su plural es interfaces.
8. Bibliografía
o Linkografia
Link de las Diapositivas del Tema STATEMENT
|