miércoles, 21 de septiembre de 2011

INSERTAR DATOS EN UN JTABLE DESDE UNA BD EN JAVA



Comando SELECT y sus claúsulas
La sentencia SELECT es usada para obtener la información guardada en una tabla. La forma general de esta sentencia es:

SELECT
LaInformaciónQueDeseamos FROM DeQueTabla WHERECondiciónASatisfacer

Aquí,
 
Select e.nombre from escuela e, facultad f where e.idfacultad=f.idfacultad
And f.nombre=”Ingenieria”;

Podemos también combinar condiciones, por ejemplo, visualizar los planes de estudio del primer ciclo, perteneciente a la escuela profesional de Ingeniería de Sistema:

Select c.nombre, horasteoricas, horaspractica, horaslaboratorio, nrocreditos from
Plan_estudios p, curso c, escuela e where p.idcurso=c.idcurso and
p.idescuela=e.idescuela and e.nombre=”Ingenieria de Sistemas” and ciclo=1;

Se debe notar en los ejemplos anteriores que las filas regresadas son mostradas sin ningún orden en particular. Sin embargo, frecuentemente es más fácil examinar la salida de una consulta cuando las filas son ordenadas en alguna forma útil. Para ordenar los resultados, tenemos que usar una cláusula
 
Select e.nombre from escuela e, facultad f where e.idfacultad=f.idfacultad
And f.nombre=”Ingenieria” order by e.nombre;

Podemos ordenar múltiples columnas. Por ejemplo, para ordenar por ciclo de los planes de estudio y por el número de créditos, el cual se ordenará de forma descendente, usaremos la siguiente consulta:

Select ciclo,c.nombre, horasteoricas, horaspractica, horaslaboratorio, nrocreditos
from Plan_estudios p, curso c, escuela e where p.idcurso=c.idcurso and
p.idescuela=e.idescuela and e.nombre=”Ingenieria de Sistemas”
order by ciclo, nrocreditos desc;


Consulta de Datos usando PreparedStatement
En esta oportunidad vamos a utilizar el interface PreparedStatement para preparar la consulta, cuya ejecución devolverá los resultados a un objeto ResultSet.

Seguimos usando la base de datos universidad, construyendo en esta oportunidad una consulta que muestre los planes de estudio que pertenecen a una escuela profesional seleccionada.

Para diseñar y desarrollar la aplicación seguiremos los siguientes pasos:

1. En la clase Acceso agregamos el siguiente método BuscaPlanesEscuela:


EXPLICAION DEL CODIGO.

El método BuscaPlanesEscuela se inicia invocando al método sta() que a su vez utiliza el método Enlace(), este último establece la conexión con la base de datos, por lo tanto el objeto

2.

Seleccionamos Plan de Estudio por Escuela damos clic botón derecho del mouse elegimos


Luego escribimos el siguiente código:



3. Diseñamos el siguiente formulario denominado frmConsPlanXEsc.




4. Vamos a proceder a programar el formulario frmConsPlanXEsc colocando las
siguientes líneas de código:

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 métodos que tenga. A veces es necesario ser explícitos en señalar el uso de PreparedStatement para el funcionamiento de los parámetros en la estructura de un comando SELECT.


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
de datos universidad. Una vez que se tienen la conexión procedemos a ejecutar el método
ahí cada vez que usemos el método

Cuando el método next() devuelva falso terminará la ejecución de la sentencia repetitiva while. En cada desplazamiento se agregará al objeto JComboBox denominado
titulos de tipo String, almacenamos los títulos de cada uno de las columnas. Con el método setColumnIdentifiers() damos el arreglo titulos para establecer los titulos de cada columna que maneja el modelo dtm. Con el método setmodel() vinculamos el modelo al objeto Jtable  tablaPlanes. En el bloque try iniciamos con establecer la conexión con la baseEnlEsc() que se encuentra en la clase Acceso que permitirá obtener todos las escuelas profesionales. Con el método next() se ubica al primer registro de los resultados devueltos por el método EnlEsc(), denext() se desplazará al siguiente registro.cboEscuela el nombre de la escuela profesional.

Se declara la variable
anteponerle la expresión

En el bloque try establecemos la conexión con la base de datos universidad y ejecutamos el método BuscaPlanesEscuela() perteneciente a la clase Acceso que devolverá los datos de los planes de estudio perteneciente a la escuela seleccionada. Se declara e instancia un arreglo denominado datos[] que permitirá guardar los datos de un plan de estudio encontrado en la variable rs, pero antes nos aseguramos que no exista fila alguna en el objeto JTable tablaPlanes. La sentencia repetitiva while y usando el método next() del objeto rs es para ubicarnos en la primera fila y en las siguientes filas de los resultados devueltos por el método BuscaPlanesEscuela(). En cada interacción se agregará una fila en el objeto tablaPlanes a través del modelo dtm usando el método addRow().


El botón de comando

btnCerrar, con el método dispose se cierra la ventana o formulario.
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  objeto JComboBox denominado cboEscuela. El método getSelectedItem() obtiene el nombre de la escuela elegida pero lo extrae de tipo Object y al(String) se comporta como dato de tipo String y lo asigna a la variable nomesc.
Eventos/Action/ActionPerformed
En el formulario frmPrincipal que contiene el diseño del menú, ubicamos la opción Plan de Estudio por Escuela dentro de consultas.
conn deja de ser null y contiene la información necesaria de la conexión 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 método setString() donde el parámetro nom contiene el valor o dato a reemplazar en ?. Se ejecuta la consulta usando el método executeQuery(), cuyo resultado se almacena en el objeto ResultSet llamado rs.
ORDER BY.
Podemos seleccionar sólo registros particulares de una tabla. Por ejemplo, si deseamos visualizar las escuelas profesionales de la facultad de ingeniería:

LaInformaciónQueDeseamos es la información 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 claúsula WHERE es opcional. Si está presente, la CondiciónASatisfacer especifica las condiciones que los registros deben satisfacer para que puedan ser mostrados.

No hay comentarios:

Publicar un comentario