2. STATEMENT
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:Un objeto Statement se usa para ejecutar una sentencia
SQL simple sin parámetros.
PreparedStatement: Un objeto PreparedStatement se usa para
ejecutar sentencias SQL precompiladas con o sin parámetros IN.
CallableStatement: un objeto CallableStatement se usa para
ejecutar un procedimiento de base de datos almacenado.
3. Métodos de la interface Statement
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.
4. 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();
5. Realización de Statement
Cuando una conexión está en modo auto-commit, las sentencias ejecutadas son ‘comitadas’ o
rechazadas cuando se completan.
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.
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.
6. 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();
7. 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.
8. 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.
9. 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.