Buscar un blog aquí

jueves, 19 de octubre de 2017

Statement


"AÑO DEL BUEN SERVICIO AL CIUDADANO" 
Grupo NeSi



INTEGRANTES:   KARIN YANINA ROMERO JULCA
                             JHERSI ANALI SAAVEDRA GARCIA
                       YAKELINE VILCHEZ CRUZADO
                         
                                  
          PROFESOR: MARCO AURELIO PORRO CHULLI

CICLO: V                  AULA: "402"
   
           BAGUA GRANDE-AMAZONAS-PERÚ

-------------------------------------------------------------------------------------------------------------------

😊😆😀😇

Clase Statement


1. CONTENIDO

Definición:

java.sql.Statement:
createStatement();
java.sql.PreparedStatement:
prepareStatement();

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 procedimieno de base de datos almacenado.
La interfase Statement suminstra métodos básicos para ejecutar sentencias y devolver resultados. La interfase PreparedStatement añade métodos para trabajat con los parámetros IN; y la interfase CallableStatement añade métodos para trabajar con parameters OUT.
La clase 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: publicStatementcreateStament() trowsjava.sql.SQLException;


FIGURA N° :1


Métodos
ü  executeQuery(String sql)
ü  Ejecución de consultas: SELECT
ü  Devuelve un objeto ResultSet
        executeUpdate(String sql)
ü  Modificaciones en la BD: INSERT, UPDATE, DELETE
ü  Devuelve el número de columnas afectadas
execute(String sql)
ü  Ejecución de instrucciones que pueden devolver varios conjuntos de resultados
ü  Requiere usar luego getResultSet() o getUpdateCount() para recuperar los resultados, y getMoreResults() para ver los siguientes resultados


FIGURA N°:2


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.

Ejemplo

ResultSet rs = stmt.executeQuery("SELECT a, b, c FROM Table2");

Ejecución de sentencias usando objetos Statement. 

La interfase Statement nos suministra tres métodos diferentes para ejecutar sentencias SQL, executeQuery, executeUpdate y execute. El método a usar esta determinado por el producto de la sentencia SQL 

El método executeQuery esta 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 necesitarñan 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 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 si 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 parametro de query con las versiones de los métodos de PreparedStatement o CallableStatement producirái 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. Un 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,  un 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 explicitamente cuando no sean ya necesarios. Esto libera recursos DBMS inmediatamente y ayuda a evitar potenciales problemas de memoria.  

PROPIEDADES:👀

Empezamos por descargar el conector MySQL para Java desde su sitio web: conector MySQL. Una vez que hemos descargado el fichero .zip correspondiente a nuestra plataforma lo descomprimimos en el equipo y  buscamos dentro de la carpeta principal un archivo llamado mysql-connector con extensión .jar.
Ahora tenemos que agregar este archivo jar a nuestra aplicación de NetBeabs, para ello  hacemos Click derecho sobre el nombre del proyecto y seleccionamos propiedades. En la ventana siguiente seleccionamos en librerías y posteriormente pulsamos en el botón –>Add Jar/folder. Finalmente accedemos a la localización del conector que descargamos anteriormente y pulsamos OK.

Después de importar el conector ya casi estamos preparados, aunque antes de continuar necesitamos un servidor local y una base de datos.
En mi caso utilizo phpMyAdmin para crear la bd java1 con nombre de usuario root y sin contraseña. También la tabla Motor con 3 columnas: Marca, Modelo y Potencia.


En la siguiente clase insertamos 2 registros en la tabla motor con el método executeUpdate(). Finalmente mostramos los datos en pantalla ordenados por Potencia.



EJEMPLOS: 

ejempo1:

finally { try { if (resultados != null) {  // liberar los ResultSet resultados.close(); }
if (instruccion != null) {  // liberar los Statement instruccion.close(); }
if (conexion != null) {     // liberar la conexión a la BD conexion.close(); } } catch (Exception e) { e.printStackTrace(); }

}

ejemplo2_:


En el vídeo a continuación habrá una explicación mas precisa de entender mejor este tema: 

Ejemplo3:

// El siguiente código es nuevo en JDBC 2.0
Statement stmt2 = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_UPDATEABLE);
// El siguiente código es nuevo en JDBC 3.0
Statement stmt3 = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_READ_ONLY, ResultSet.HOLD_CURSOR_OVER_COMMIT);

video de ejemplos:



2. RESUMEN


La clase statement sirve para  ejecutar sentencias y devolver resultados. 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.SUMARY:
                       

The statement class is used to execute statements and return results. process a static SQL statement and get the results produced by it. There can only be one ResultSet open for each Statement object at a given time.

 4. CONCLUSIONES


La importancia principal de las multibase de datos y mas concretamente de las bases de datos federadas fuertemente acopladas radica principalmente en su bi procesamiento. Es decir, en su capacidad de atender consultas globales, al mismo tiempo que permite que las bases de datos componentes sigan atendiendo a sus aplicaciones locales. La existencia de un esquema global permite que el lenguaje

implementado para llevar a cabo las consultas sea fácil de aprender y entender (muy parecido a SQL) debido a que este da a la multibase de datos la apariencia de que se accesa a una base de datos sencilla y por lo tanto las operaciones de distribución son transparentes al usuario.

5. APRECIACIÓN DEL EQUIPO

Saber manejar el lenguaje de programación Java es muy importante por los múltiples beneficios, entonces mediante su estudio podemos conocer su estructura y sobretodo como podemos acceder a una Base de Datos desde la plataforma Java. En este tema podemos conocer cómo acceder a una Base de Datos utilizando la clase Connection o más conocida como JDBC.

6. GLOSARIO DE TÉRMINOS
  • RESULTSET: En SQL ResultSet es un conjunto de filas de una base de datos, así como los metadatos acerca de la consulta, tales como los nombres de las columnas, y los tipos y  tamaños de cada columna. Dependiendo del sistema de base de datos, el número de filas del conjunto de resultados puede ser o no ser conocido. Por lo general, este número no se conoce por adelantado debido a que el conjunto de resultados se construye sobre la marcha.
  • JDBC: Java Database Connectivity (JDBC) es una interfaz de programación de aplicaciones (API) para el lenguaje de programación Java, que define la forma en que un cliente puede acceder a una base de datos. Es parte de la plataforma Java Standard Edition, de Oracle Corporation. Proporciona métodos para consultar y actualizar datos en una base de datos, y se orienta hacia las bases de datos relacionales. Un puente JDBC-to-ODBC permite conexiones a cualquier fuente de datos ODBC accesible en el entorno de acogida máquina virtual Java (JVM).

7.- LINKOGRAFIA

Click para ver las Diapositivas 
https://www.slideshare.net/jhersisaavedragarcia/statement-80996960









1 comentario:

  1. Se debe tener al menos 10 términos en su GLOSARIO. Defina claramente su APRECIACIÓN. Se tiene que establecer 3 RECOMENDACIONES y CONCLUSIONES.Muchas gracias por su aporte. Saludos

    ResponderEliminar