Professional Documents
Culture Documents
Comando SELECT y sus clasulas La sentencia SELECT es usada para obtener la informacin guardada en una tabla. La forma general de esta sentencia es: SELECT LaInformacinQueDeseamos FROM DeQueTabla WHERE CondicinASatisfacer
Aqu, LaInformacinQueDeseamos es la informacin que queremos ver. Esta puede ser una lista de columnas, o un * para indicar "todas las columnas". DeQueTabla indica el nombre de la tabla de la cual vamos a obtener los datos. La
Pgina 1
Consulta de Datos usando PreparedStatement En esta oportunidad vamos a utilizar el interface PreparedStatement para preparar la consulta, cuya ejecucin devolver los resultados a un objeto ResultSet.
Ing. Martn Salcedo Quiones Pgina 2
El mtodo BuscaPlanesEscuela se inicia invocando al mtodo sta() que a su vez utiliza el mtodo Enlace(), este ltimo establece la conexin con la base de datos, por lo tanto el objeto conn deja de ser null y contiene la informacin necesaria de la conexin con la base de datos universidad. Se declara la variable sql de tipo String, que contiene una consulta que hace uso de la vista creada anteriormente en una de las sesiones de este curso. Esta consulta lo que busca es obtener los datos de los planes de estudio que pertenecen a una escuela profesional. Luego se declara y se construye una variable objeto ps del tipo PreparedStatement que a partir del objeto conn de tipo Connection se indica la sentencia select a ejecutar. Como la sentencia select tiene un signo ? que indica que falta darle un valor, entonces se procede a usar el mtodo setString() donde el parmetro nom contiene el valor o dato a reemplazar en ?. Se ejecuta la consulta usando el mtodo executeQuery(), cuyo resultado se almacena en el objeto ResultSet llamado rs.
Pgina 3
Seleccionamos Plan de Estudio por Escuela damos clic botn derecho del mouse elegimos Eventos/Action/ActionPerformed
Pgina 4
cboEscuela btnConsultar tablaPlanes btnCerrar 4. Vamos a proceder a programar el formulario frmConsPlanXEsc colocando las siguientes lneas de cdigo:
Importamos los paquetes java.sql (para acceder a base de datos), javax.swing (para el uso de los controles visuales), javax.swing.table para el manejo de las clases del paquete table y el paquete universidad que contiene a la clase Acceso con lo cual podremos hacer uso de todos los mtodos que tenga. A
Ing. Martn Salcedo Quiones Pgina 5
Se define las variables objeto conn, st, rs del tipo Connection, Statement y ResultSet inicializando como null. La variable objeto dtm es del tipo DefaultTableModel para el manejo del objeto Jtable tablaPlanes.
Con la variable arreglo llamado titulos de tipo String, almacenamos los ttulos de cada uno de las columnas. Con el mtodo setColumnIdentifiers() damos el arreglo titulos para establecer los titulos de cada columna que maneja el modelo dtm. Con el mtodo setmodel() vinculamos el modelo al objeto Jtable
Ing. Martn Salcedo Quiones Pgina 6
Se declara la variable nomesc de tipo String, f e i de tipo int. En la variable nomesc se almacena el nombre de de la escuela profesional seleccionada del
Ing. Martn Salcedo Quiones Pgina 7
El botn de comando btnCerrar, con el mtodo dispose se cierra la ventana o formulario. 5. Procedemos a ejecutar el formulario desde el men.
Seleccionamos la escuela de Ingeniera Civil y al dar clic en el botn de comando Consultar se muestra:
Pgina 8
Cuando trabajamos con una base de datos es posible que haya sentencias SQL que tengamos que ejecutar varias veces durante la sesin, aunque sea con distintos parmetros. Por ejemplo, durante una sesin con base de datos podemos querer insertar varios registros en una tabla. Cada vez los datos que insertamos sern distintos, pero la sentencia SQL ser la misma: Un INSERT sobre determinada tabla que ser siempre igual, salvo los valores concretos que queramos insertar. Casi todas las bases de datos tienen previsto un mecanismo para que en estos casos la ejecucin de esas sentencias repetidas sea ms rpida. Si tenemos una
Pgina 9
en cada caso la base de datos deber analizar la sentencia SQL, comprobar que es correcta, convertir los datos al tipo adecuado (por ejemplo, los enteros a int) y ejecutar la sentencia. El mecanismo que preven las bases de datos para hacer ms eficiente este proceso es que le indiquemos, previamente, el tipo de sentencia que vamos a usar, de forma que la base de datos la "precompila" y la guarda en condiciones de ser ejecutada inmediatamente, sin necesidad de analizarla en cada caso. Esto es lo que se conoce como una prepared statement. En el caso de mysql, se hara de esta forma
mysql> PREPARE insertar FROM "INSERT INTO person VALUES (null, ?, ?, ?)"; mysql> SET @edad=23; mysql> SET @nombre='Pedro'; mysql> SET @apellido='Perez'; mysql> EXECUTE insertar USING @edad,@nombre,@apellido mysql> SET @edad=33; mysql> SET @nombre='Rodrigo'; mysql> SET @apellido='Rodriguez'; mysql> EXECUTE insertar USING @edad,@nombre,@apellido; mysql> DEALLOCATE PREPARE insertar;
donde hemos preparado una prepared statement de nombre insertar con la SQL del INSERT, en la que hemos reemplazado los valores concretos por interrogantes. Fjate que no hemos puesto comillas entre los interrogantes. Hemos hecho dos inserciones dando valores a unas variables @edad, @nombre y @apellido, que son las que se usarn en el EXCECUTE de la prepared statement. Una vez finalizadas las inserciones, avisamos a la base de datos que no vamos a usar ms esta prepared statement con un DEALLOCATE.
Pgina 10