DESARROLLO DE SOFTWARE I
1.
STATEMENT
1.1
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.
La interface Statement suminstra métodos básicos para
ejecutar sentencias y devolver resultados. La interfase PreparedStatement añade
métodos para trabajar con los parámetros IN; y la interface CallableStatement
añade métodos para trabajar con parámetros OUT.
1.2
PROPIEDADES
Métodos de la interface
Statement
Nos suministra tres
métodos diferentes para ejecutar sentencias SQL, el método a usar está
determinado por el producto de la sentencia SQL
· · ExecuteQuery
El método executeQuery está diseñado para sentencias que
producen como resultado un único resultset tal como las sentencias SELECT.
· · ExecuteUpdate
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.
· · Execute
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.
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();
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");
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 interfase PreparedStatement, que hereda
los métodos de la interfase 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án una SQLException.
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. Para el método executeQuery, que devuelve un único resultset,
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.
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.
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.
Uso del método Execute
El método execute debería usarse solamente cuando es
posible que una sentencia nos devuelva más de un objeto Resultset., más de un
updatecount o una combinación de ambos. Estas múltiples posibilidades para
resultados, aunque raras, son posibles cuando se ejecutan ciertos procedimientos
almacenados o por la ejecución dinámica de una string SQL desconocida (esto es,
desconocida para el programador de la aplicación en tiempo de compilación).
Después de usar el método execute para ejecutar el
procedimiento, se debe llamar al método getResultSet para conseguir el primer
resultset y después los métodos apropiados get XXX para recuperar los valores
de él. Para conseguir el segundo result set, se necesita llamar al método
getMoreResults y y despues a getResultSet de nuevo. Si se sabe que el procedimiento
devuelve dos upadte counts, se llama primero al método getUpdateCount, seguido
de getMoreResults y de nuevo getUpdateCount.
Aquellos casos en los que no se conoce que devolverá se nos
presentan una situación más compleja. El método execute devuelve true si el
resultado es un objeto ResultSet y false si es un int Java. Si devuelve un int,
esto quiere decir que el resultado o bien es un updatecount o que la sentencia
que ha ejecutado es un comando DDL. Lo primero que hay que hacer después de
llamar execute es llamar o bien a getResultSet o getUpdateCount.
1.3
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 producto");
// 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 a la base de datos.
conexion.close();
2.
RESUMEN
STATEMENT - JAVA.SQL.STATEMENT:
java.sql.Statement
Se usa para ejecutar sentencias SQL.
Lleva asociada una conexión que sirvió como origen para su creación.
·
Se crea con el método
de la clase:
java.sql.Connection:
public Statement createStament() trows java.sql.SQLException;
·
Las sentencias se
cierran con el método:
public void close() trows java.sql.SQLException;
El método para ejecutarla depende del tipo de sentencia SQL
que contenga.
Sentencias SELECT:
Se usa el método: executeQuery(String sql). Devuelve una
instancia de java.sql.ResultSet.
Sentencias INSERT, UPDATE, DELETE:
Se usa el método: executeUpdate(String sql).devuelve un int
con el número de filas afectadas
3.
SUMMARY
STATEMENT -
java.sql.Statement:
java.sql.Statement
It is used to execute SQL statements.
It is associated with a connection that served as the
source for its creation.
• is created with the method of the class:
java.sql.Connection:
Statement public createStament () trows
java.sql.SQLException;
• The sentences are closed with the method:
public void close () trows java.sql.SQLException;
The method to execute depends on the type of SQL statement
containing.
SELECT statements:
executeQuery (String sql) method is used. Returns an
instance of java.sql.ResultSet.
INSERT, UPDATE, DELETE:
the method is used: executeUpdate (String sql) .devuelve an
int with the number of rows affected
4.
RECOMENDACIONES
Ø Un objeto Statement se debe crear, mediante el método de
Connection createStatement
Ø Un objeto Statement
solo, es usado 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.
Ø Un objeto CallableStatement se usa para ejecutar un
procedimiento de base de datos almacenado.
5.
CONCLUSIONES
Ø Para el método de conexión se utilizan los siguientes
componentes: Connection, Statement y ResultSet.
Ø El Statement es el que genera el comando de ejecución, para
ello todo este comando lo mandamos en el parámetro SQL.
6.
APRECIACIÓN DEL EQUIPO
Ø Nuestra apreciación con
respecto al trabajo realizado, sobre el tema de Statement es que Statement es un objeto que es usado 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 y
CallableStatement.
Ø Esperamos que este trabajo
le sea útil a la persona interesadas.
7.
GLOSARIO
· MÉTODO.- Un método en Java es un conjunto de
instrucciones definidas dentro de una clase, que realizan una determinada tarea
y a las que podemos invocar mediante un nombre.
· CONTENEDOR.- Se trata de unidades
estancas que protegen las mercancías de la climatología.
· PARÁMETROS.- Variable que establece un
conjunto de características a ser reproducidas dentro de un patrón establecido
por un programa o lenguaje dados.
· INTERFACE.- es
el conjunto de subrutinas, funciones y procedimientos (o métodos, en la
programación orientada a objetos) que ofrece cierta biblioteca para ser
utilizado por otro software como una capa de abstracción.
· SINTAXIS.-
Forma correcta en que deben estar dispuestos los símbolos que componen una
instrucción ejecutable por el ordenador.
· OBJETO.-entidad existente en
la memoria del ordenador que tiene unas propiedades (atributos o datos sobre sí
mismo almacenados por el objeto) y unas operaciones disponibles específicas
(métodos).
8.
LINKOGRAFIA

No hay comentarios.:
Publicar un comentario