ProgramacionFacil

UNIDAD 7: JAVA JSP INTRODUCION A LAS BASES DE DATOS

TEMA 7: CONSULTA O DESPLIEGUE O SELECCION JAVA JSP

Existen una serie de operaciones y procesos que son muy comunes contra una tabla en una base de datos en disco, la mas común es desplegar todos los renglones de la tabla que estan almacenados en disco, a este proceso le llamaremos SELECCION, consulta o despliegue.

Como se indico anteriormente la comunicación con la base de datos se tendran que dar usando el lenguaje especializado de bases de datos llamado SQL(structured query language), la instrucción sql que se usa para resolver este problema tiene el siguiente formato:

SELECT [listacampos, * o ALL] FROM TABLA;

El procedimiento que se intenta seguir cuando se construya un programa asp.net que tenga que manipular una tabla en disco debera seguir los siguientes pasos:

1.- Crear una conección o enlace a la base de datos.

2.- Abrir la conección a la base de datos.

3.- Crear el enlace y cargarlo con la instruccion sql

4.- Crear el RESULTSET y cargarlo

5.- Cargar un objeto table de html con el RESULTSET

6.- Procesar el table de html

7.- Cerrar rsultset, statement, driver o conección

prog33.jsp


<%@ page import="java.io.*,java.util.*,java.net.*,java.sql.*" %>

<%

// declarando y creando objetos globales

Connection canal = null;

ResultSet tabla= null;

Statement instruccion=null;

String sitiobase = "c:/pfacil/mibase.mdb";

String strcon= "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=" + sitiobase;

// detectando y cargando el objeto submit de html

if(request.getParameter("OK") != null)

{

// abriendo canal o enlace en su propio try-catch

try { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

canal=DriverManager.getConnection(strcon);

instruccion = canal.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,

ResultSet.CONCUR_UPDATABLE);

} catch(java.lang.ClassNotFoundException e){} catch(SQLException e) {};

//leyendo tabla en disco y pasandola al resultset

try { tabla = instruccion.executeQuery("select * from mitabla");

// empezando a construir una tabla html

out.println("<TABLE Border=10 CellPadding=5><TR>");

out.println("<th bgcolor=Green>CLAVE</th><th bgcolor=White>NOMBRE</th><th bgcolor=Red>EDAD</th></TR>");

// mandando resultset a una tabla html

// y ciclo de lectura del resultset

while(tabla.next()) {

out.println("<TR>");

out.println("<TD>"+tabla.getString(1)+"</TD>");

out.println("<TD>"+tabla.getString(2)+"</TD>");

out.println("<TD>"+tabla.getString(3)+"</TD>");

out.println("</TR>"); }; // fin while

out.println("</TABLE></CENTER></DIV></HTML>");

// cerrando resultset

tabla.close(); instruccion.close(); canal.close();} //fin try no usar ; al final de dos o mas catchs

catch(SQLException e) {};

};

// construyendo forma dinamica

out.println("<FORM ACTION=prog33.jsp METHOD=post>");

out.println("<INPUT TYPE=SUBMIT NAME=OK VALUE=CONSULTA><BR>");

out.println("</FORM>");

%>

Corrida:

image59.jpg

notas:

1.- revisar con cuidado el programa, proque como todo buen programa lleva incluida mucha documentación o explicación.

2.- Se sigue el procedimiento generico para procesar tablas

3.- Observar y siempre incluir los import's indicados.

4.- Se empieza creando las variables globales a ocupar y abriendo la conección a la base de datos, si se les hace muy grande la string del provedor, pueden cargarla primero en una variable string y carguen la string en el constructor de la conección, pero esto es opcional.

5.- Tomar nota como se hace una referencia a la base de datos, esto es en c:/pfacil/mibase.mdb ( ojo con las diagonales)

6.- Se crea el enlace y se carga el resultset(o tabla en memoria) con la instrucción sql y la coneccion, aqui es necesario entender que existen varias maneras de hacer este proceso.

7.- Luego se crea el resultset(tabla) y se cargo con toda la base de datos en disco

8.- Posteriormente se carga el TABLE DE HTML con el resultset.

9.- Para visitar o procesar todos los renglones de la tabla del dataset se usa un ciclo while, y el metodo RESULTSET.NEXT() y por el nombre se ve que existen otros metodos utiles para navegar por todos los renglones de resultset, tales como last(), prior() etc.

10.- Para procesar un dato, celda o columna de un renglon cualesquiera se usa el siguiente metodo RESULTSET.GETSTRING(numerocolumna o nombrecolumna).

11.- ES MUY IMPORTANTE ESTUDIAR TODOS LOS METODOS DEL RESULTSET PORQUE LES FACILITARA MUCHOS PORBLEMAS DE MANIPULACION DE TABLAS, CONSULTAR LA DOCUMENTACION DE SDK DE JAVA.

12.- observar tambien que los objetos resultset, statement y drivermanager(conección), deben cerrarse al final del programa, y se cierran en el mismo orden como fueron abiertos.

12.1.- como nota aclaratoria al ultimo punto si no se cierran resultset, statement y drivemanager() dentro del programa, el servidor bloqueara(locking) el acceso a la base de datos y ya no permitira mas uso de la base de datos, es facil saber cuando esta bloqueada una base de datos porque en el directorio donde se encuentra mibase.mdb ahora estara un nuevo archivo llamado mibase.ldb y no se puede eliminar con windows, para eliminarlo de manera normal parar el servidor de java lws y luego abrir mibase.mdb con el access normal y cerrar, con este proceso ya debera desaparecer la mase bloqueada (mibase.ldb).

12.2- mas claro aún, NO OLVIDAR USAR LOS TRES CLOSE() que puse en el programa ejemplo.

TAREAS PROGRAMACION JAVA JSP

1.- construir y desplegar una primera base de datos que contenga la primera tabla que diseñarón en el tema de tablas.

2.- Construir una segunda base de datos que contenga cuando menos tres de las tablas ya diseñadas y desplegar cualquiera de ellas usando una sola forma html, donde el usuario selecciona cual quiere desplegar.

 




 


Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki

Politica de Privacidad