msc. daniel alejandro yucra sotomayor pag. - 1somoslibres.org/dam/parte_1/laboratorio_3.pdf ·...

17
Ingeniería de Software II MSc. Daniel Alejandro Yucra Sotomayor Pag. - 1 - Laboratório 3 JSP con Base de Datos 1. Creación de un Módulo de Gestión Para desarrollar esta aplicación es necesario crear una base de datos con al menos una tabla donde se registre los datos. El módulo de gestión de personas por lo menos debe tener las siguientes funcionales: Adicionar un registro Modificar registros Eliminar registros Mostrar los registros 2. Creando la Base de Datos Para realizar este laboratorio es importante primero correr los servicios Apache HTTPD “httpd”, el gestor MYSQL “Mysqld” y debe haber descomprimido una versión de phpMyadmin en la carpeta “/var/www/html”, con el nombre “myamin”. a) Ingrese la siguiente dirección URL http://localhost/myadmin , debe mostrar la figura que se muestra a continuación: Figura 01: Acceso a phpmyadmin, cliente gestor de base de datos MySql

Upload: hoangliem

Post on 20-Sep-2018

225 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: MSc. Daniel Alejandro Yucra Sotomayor Pag. - 1somoslibres.org/dam/Parte_1/Laboratorio_3.pdf · MYSQL “Mysqld” y debe haber descomprimido una versión de phpMyadmin en la carpeta

Ingeniería de Software II

MSc. Daniel Alejandro Yucra Sotomayor Pag. - 1 -

Laboratório 3

JSP con Base de Datos

1. Creación de un Módulo de Gestión

Para desarrollar esta aplicación es necesario crear una base de datos con al menos una tabla donde se registre los datos.

El módulo de gestión de personas por lo menos debe tener las siguientes funcionales:

Adicionar un registro

Modificar registros

Eliminar registros

Mostrar los registros

2. Creando la Base de Datos

Para realizar este laboratorio es importante primero correr los servicios Apache HTTPD “httpd”, el gestor MYSQL “Mysqld” y debe haber descomprimido una versión de phpMyadmin en la carpeta “/var/www/html”, con el nombre “myamin”.

a) Ingrese la siguiente dirección URL http://localhost/myadmin, debe mostrar la figura que se muestra a continuación:

Figura 01: Acceso a phpmyadmin, cliente gestor de base de datos MySql

Page 2: MSc. Daniel Alejandro Yucra Sotomayor Pag. - 1somoslibres.org/dam/Parte_1/Laboratorio_3.pdf · MYSQL “Mysqld” y debe haber descomprimido una versión de phpMyadmin en la carpeta

Ingeniería de Software II

MSc. Daniel Alejandro Yucra Sotomayor Pag. - 2 -

b) Para estos laboratorios se ha configurado las maquinas el servicio Mysql el usuario “root” y el password “uigv”.

c) A continuación, utilizando PhpMyadmin, crear la base de datos “estudiante”:

Figura 02: Creando la Base de Datos “estudiante”

d) El código SQL que debe generar es la muestra a continuación:

--

-- Estructura de tabla para la tabla `persona`

--

CREATE TABLE IF NOT EXISTS `persona` ( `clave` mediumint(9) NOT NULL AUTO_INCREMENT, `nombre` varchar(70) DEFAULT NULL, `edad` int(11) DEFAULT NULL, `estatura` int(11) DEFAULT NULL, PRIMARY KEY (`clave`)) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=4 ;

---- Volcado de datos para la tabla `persona`--

INSERT INTO `persona` (`clave`, `nombre`, `edad`, `estatura`) VALUES(1, 'Daniel Torres', 34, 110),(3, 'Fabrizio Aguilar', 22, 180);

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

---- Estructura de tabla para la tabla `usuarios`--

CREATE TABLE IF NOT EXISTS `usuarios` (

`usuario` varchar(16) NOT NULL,

Page 3: MSc. Daniel Alejandro Yucra Sotomayor Pag. - 1somoslibres.org/dam/Parte_1/Laboratorio_3.pdf · MYSQL “Mysqld” y debe haber descomprimido una versión de phpMyadmin en la carpeta

Ingeniería de Software II

MSc. Daniel Alejandro Yucra Sotomayor Pag. - 3 -

`contrasena` varchar(16) NOT NULL, PRIMARY KEY (`usuario`)) ENGINE=MyISAM DEFAULT CHARSET=latin1;

---- Volcado de datos para la tabla `usuarios`--

INSERT INTO `usuarios` (`usuario`, `contrasena`) VALUES('daniel', 'fedora14'),('pedro', 'fedora14');

Solo debe copiar y ejecutar el código en la opción SQL.

Figura 03: Ejecutando el código SQL en PhpMyAdmin

e) Además debe haber creado las tablas “persona” y “usuario”, tal como se muestra en la figura acontinuación:

Figura 04: Verificando la creación de las tablas “persona” y “usuarios”

Page 4: MSc. Daniel Alejandro Yucra Sotomayor Pag. - 1somoslibres.org/dam/Parte_1/Laboratorio_3.pdf · MYSQL “Mysqld” y debe haber descomprimido una versión de phpMyadmin en la carpeta

Ingeniería de Software II

MSc. Daniel Alejandro Yucra Sotomayor Pag. - 4 -

3. Proyecto Gestión de Estudiantes en Netbeans

Antes de crear los scripts para este sistema, vamos a crear el proyecto “GestionEstudiantes”

a) En Netbeans, elegir nuevo proyecto del tipo “Java Web”, proyecto “Web Applications”

Figura 05: Seleccionando la Categor{ia “Java Web” y el tipo de Proyecto “Web Application”

b) El nombre de este proyecto será: GestionEstudiantes

Figura 06: Asignando el nombre del proyecto GestionEstudiantes

c) A continuación elegimos el servidor y la versión de Java, para este caso “GlassFish Server 3.1” y Java EE version: “Java EE 5”, tal como se muestra a continuación:

Page 5: MSc. Daniel Alejandro Yucra Sotomayor Pag. - 1somoslibres.org/dam/Parte_1/Laboratorio_3.pdf · MYSQL “Mysqld” y debe haber descomprimido una versión de phpMyadmin en la carpeta

Ingeniería de Software II

MSc. Daniel Alejandro Yucra Sotomayor Pag. - 5 -

Figura 07: Asignando el Server y una versión de Java EE

No se olvide ahí debe seleccionar el boton “finish”

A partir de este proyecto se va adicionar diferentes scripts JSP que tendrán diferentes funcionalidades para el módulo.

4. Lista de resultando en JSP

A continuación vamos a adicionar el primer script JSP que listará los datos de la tabla “persona”.

a) En el proyecto “GestionEstudiantes”, crear un nuevo archivo “JSP”, con el nombre de “consultasimple”, tal como se muestra en la figura de abajo:

Figura 07: Asignando el nombre para el script “consultasimple”

b) A continuación copie el siguiente código:

<!-- Los import --><%@ page language="java" %><%@ page import = "java.sql.Connection"%><%@ page import = "java.sql.DriverManager"%> <%@ page import = "java.sql.ResultSet"%> <%@ page import = "java.sql.Statement"%> <html><body><h1>Consulta a la Tabla Persona</h1>

Page 6: MSc. Daniel Alejandro Yucra Sotomayor Pag. - 1somoslibres.org/dam/Parte_1/Laboratorio_3.pdf · MYSQL “Mysqld” y debe haber descomprimido una versión de phpMyadmin en la carpeta

Ingeniería de Software II

MSc. Daniel Alejandro Yucra Sotomayor Pag. - 6 -

<%try{ // Conexion con bd Class.forName("org.gjt.mm.mysql.Driver"); Connection conexion = DriverManager.getConnection("jdbc:mysql://localhost/estudiante", "root", "uigv"); if (!conexion.isClosed()) { // La consulta Statement st = conexion.createStatement(); ResultSet rs = st.executeQuery("select * from persona" );

// Ponemos los resultados en un table de html out.println("<table border=\"1\"><tr><td>Id</td><td>Nombre y Apellido</td><td>Edad</td><td>Estatura</td></tr>"); while (rs.next()) { out.println("<tr>"); out.println("<td>"+rs.getObject("clave")+"</td>"); out.println("<td>"+rs.getObject("nombre")+"</td>"); out.println("<td>"+rs.getObject("edad")+"</td>"); out.println("<td>"+rs.getObject("estatura")+"</td>"); out.println("</tr>"); } out.println("</table>");

// cierre de la conexion conexion.close(); } else // Error en la conexion out.println("fallo");}catch (Exception e){ // Error en algun momento. out.println("Excepcion "+e); e.printStackTrace();}%></body></html>

c) Para asegurar una conexión permanente entre el proyecto y la base de datos “estudiante”, debe crear una unidad de persistencia.

d) A continuación este es el resultado del listado de estudiantes

Page 7: MSc. Daniel Alejandro Yucra Sotomayor Pag. - 1somoslibres.org/dam/Parte_1/Laboratorio_3.pdf · MYSQL “Mysqld” y debe haber descomprimido una versión de phpMyadmin en la carpeta

Ingeniería de Software II

MSc. Daniel Alejandro Yucra Sotomayor Pag. - 7 -

Figura 08: Listado de registros de la tabla “persona”

5. Una consulta con un evento

a) Para este ejemplo debe crear un nuevo archivo con el nombre “consultaevento.jsp”

Es importante tener en cuenta lo siguiente:

OBJETO CONNECTION:- Objeto que se utiliza para establecer la conección o enlaze entre el programa jsp y la base de datos en mysql.

OBJETO RESULTSET:- Es la representación en memoria de las tablas de la base de datos en disco, se puede entender como una tabla virtual, recordar que generalmente todos los procesos que se realizen con la tabla (insertar registros, eliminar registros, etc) se realizaran realmente contra un resulset y no provocaran ningun cambio en la tabla fisica en disco, resulset tiene un conjunto de metodos muy utiles y muy usados para el proceso de los renglones de la tabla virtual.

OBJETO STATEMENT:- Este objeto y sus dos metodos executequery(solo para select de sql) y executeupdate( solo para insert, update y delete de sql) son los metodos que se utilizaran para comunicarse con la tabla fisica en disco.

Para nuestro caso definiremos de la siguiente manera de la siguiente manera:

// declarando y creando objetos globalesConnection canal = null;ResultSet tabla= null;Statement instruccion=null;String strcon = "jdbc:mysql://localhost/estudiante?user=root&password=uigv";// abriendo canal o enlace en su propio try-catchtry {Class.forName("com.mysql.jdbc.Driver").newInstance();canal=DriverManager.getConnection(strcon);instruccion = canal.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);} catch(java.lang.ClassNotFoundException e){} catch(SQLException e) {};

b) A continuación copiar el siguiente código para este ejemplo:

Page 8: MSc. Daniel Alejandro Yucra Sotomayor Pag. - 1somoslibres.org/dam/Parte_1/Laboratorio_3.pdf · MYSQL “Mysqld” y debe haber descomprimido una versión de phpMyadmin en la carpeta

Ingeniería de Software II

MSc. Daniel Alejandro Yucra Sotomayor Pag. - 8 -

<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Consulta Evento</title></head><body><%@ page import="java.io.*,java.util.*,java.net.*,java.sql.*" %>

<%// declarando y creando objetos globalesConnection canal = null;ResultSet tabla= null;Statement instruccion=null;String strcon = "jdbc:mysql://localhost/estudiante?user=root&password=uigv";if(request.getParameter("OK") != null)

{

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

try {Class.forName("com.mysql.jdbc.Driver").newInstance();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 persona");

// mandando resultset a una tabla htmlout.println("<H3>Consulta de la Tabla Persona</H3>");out.println("<TABLE Border=10 CellPadding=5><TR>");out.println("<TH bgcolor=#525666><FONT COLOR=WHITE>CÓDIGO<font></TH><TH bgcolor=#525666><FONT COLOR=WHITE>NOMBRE Y APELLIDO</FONT></TH><TH bgcolor=#525666><FONT COLOR=WHITE>EDAD</FONT></TH><TH bgcolor=#525666><FONT COLOR=WHITE>ESTATURA</FONT></TH</TR>");

// ciclo de lectura del resultsetwhile(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("<TD>"+tabla.getString(4)+"</TD>");out.println("</TR>"); }; // fin whileout.println("</TABLE></CENTER></DIV></HTML>");

// cerrando resultset

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

};

//construyendo forma dinamica

out.println("<FORM ACTION=consultaevento.jsp METHOD=post>");out.println("<INPUT TYPE=SUBMIT NAME=OK VALUE=CONSULTA><BR>");out.println("</FORM>");%></body></html>

c) El procedimiento que de la construcción del script fue el siguiente:- Crear una conexión o enlace a la base de datos.

Page 9: MSc. Daniel Alejandro Yucra Sotomayor Pag. - 1somoslibres.org/dam/Parte_1/Laboratorio_3.pdf · MYSQL “Mysqld” y debe haber descomprimido una versión de phpMyadmin en la carpeta

Ingeniería de Software II

MSc. Daniel Alejandro Yucra Sotomayor Pag. - 9 -

- Abrir la conexión a la base de datos.- Crear el enlace y cargarlo con la instrucción sql- Crear el RESULTSET y cargarlo- Cargar un objeto table de html con el RESULTSET- Procesar el table de html- Cerrar resultset, statement, driver y la conexión- En caso de que salga error verifique que haya creado la unidad de persistencia para este proyecto, en todo caso tiene que crear la unidad de persistencia.

Figura 09: Integrando la Base de Datos con el proyecto en Netbeans

d) Para este ejemplo el nombre de la unidad de persistencia será: GestionEstudiantePU (es un archivoxml que se guardará en la carpeta “Configuration Files” del proyecto).

Figura 10: Generando la unidad de persistencia

Page 10: MSc. Daniel Alejandro Yucra Sotomayor Pag. - 1somoslibres.org/dam/Parte_1/Laboratorio_3.pdf · MYSQL “Mysqld” y debe haber descomprimido una versión de phpMyadmin en la carpeta

Ingeniería de Software II

MSc. Daniel Alejandro Yucra Sotomayor Pag. - 10 -

d) Finalmente el resultado de la ejecución de este script deberá mostrar como aparece en la figura:

Figura 11: Ejecutando el script consultaevento.jsp

Figura 12: Mostrando resultados de la tabla Persona

6. Adición de Registros en la tabla “persona”

a) Para crear el script que permita adicionar nuevos registros debe crear el archivo “adicion.jsp”,

Basicamente se destaca la siguiente instrucción sql:

INSERT INTO TABLA(CAMPO1,CAMPO2..) VALUES(VALOR1,VALOR2..);

Page 11: MSc. Daniel Alejandro Yucra Sotomayor Pag. - 1somoslibres.org/dam/Parte_1/Laboratorio_3.pdf · MYSQL “Mysqld” y debe haber descomprimido una versión de phpMyadmin en la carpeta

Ingeniería de Software II

MSc. Daniel Alejandro Yucra Sotomayor Pag. - 11 -

Para este caso se crea la string "q" con el formato apropiado sql (query).

Es importante destacar que existen dos métodos para el objeto Statement- STATEMENT.EXECUTEQUERY() = Se debería usarlo para la instrucción SQL SELECT- STATEMENT.EXECUTEUPDATE()= Se debería usarlo para la instrucción SQL INSERT, UPDATE, DELETE. etc.

b) A continuación copiar el siguiente código:

<%@ page import="java.io.*,java.util.*,java.net.*,java.sql.*" %><%if(request.getParameter("GRABAR") != null){

// objetos de enlaceConnection canal = null;ResultSet tabla= null;Statement instruccion=null;String strcon = "jdbc:mysql://localhost/estudiante?user=root&password=uigv";// abriendo canal o enlace en su propio try-catch

try {Class.forName("com.mysql.jdbc.Driver").newInstance();canal=DriverManager.getConnection(strcon);instruccion = canal.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);} catch(java.lang.ClassNotFoundException e){} catch(SQLException e) {};

//cargando los campos a grabar// excepto clave porque en mysql es de tipo auto-incrementString nombre = request.getParameter("NOMBRE");int edad = Integer.parseInt(request.getParameter("EDAD"));int estatura = Integer.parseInt(request.getParameter("ESTATURA"));

// insert into tabla(nombre,edad,estatura) values('juan', 15, 188);String q="insert into persona(nombre,edad,estatura) values(\"" +nombre+"\","+edad+","+estatura+"); ";

try {

// agregando renglon (insert)int n=instruccion.executeUpdate(q);

//avisando que se hizo la instruccionout.println("REGISTRO INSERTADO");} catch(SQLException e) {out.println(e);};

try{// tabla.close();instruccion.close();canal.close();

} catch(SQLException e) {out.println(e);};

};

// construyendo forma dinamicaout.println("<FORM ACTION=adicion.jsp METHOD=post>");out.println("NOMBRE :<INPUT TYPE=TEXT NAME=NOMBRE><BR>");out.println("EDAD :<INPUT TYPE=TEXT NAME=EDAD><BR>");

out.println("ESTATURA:<INPUT TYPE=TEXT NAME=ESTATURA><BR>");out.println("<INPUT TYPE=SUBMIT NAME=GRABAR VALUE=INSERTAR ><BR>");out.println("</FORM>");%>

Page 12: MSc. Daniel Alejandro Yucra Sotomayor Pag. - 1somoslibres.org/dam/Parte_1/Laboratorio_3.pdf · MYSQL “Mysqld” y debe haber descomprimido una versión de phpMyadmin en la carpeta

Ingeniería de Software II

MSc. Daniel Alejandro Yucra Sotomayor Pag. - 12 -

c) El resultado de la presentación se muestra a continuación

Figura 13: Adicionando un nuevo registro

Figura 14: Confirmando registro

d) A continuación debe verificar, utilizando el archivo “consultasimple.jsp” o “consultaevento.jsp”

Figura 15: Verificando el nuevo registro ingresado

Page 13: MSc. Daniel Alejandro Yucra Sotomayor Pag. - 1somoslibres.org/dam/Parte_1/Laboratorio_3.pdf · MYSQL “Mysqld” y debe haber descomprimido una versión de phpMyadmin en la carpeta

Ingeniería de Software II

MSc. Daniel Alejandro Yucra Sotomayor Pag. - 13 -

7. Modificar Registros

a) Para crear el script que permita modificar registros adicionados debe crear el archivo “modifica.jsp”,

Editar significa cambiar el contenido de algunos de los campos por nueva informacíón o corregir algun error de captura original.

En este caso se utiliza la instrucción sql UPDATE, sin embargo ahora se tendran que construir dos métodos uno de busqueda de algún registro y otro de actualizacion estos metodos son:

- BUSQUEDA: programa normal de busqueda por clave, pero ahora debera construir una formulario html dinamica, que contendra un form action apuntando o ejecutandose a si mismo es decir modifica.jsp, ademas tendra todos los "input text" ó cajas de texto necesarios para cargar cada celda del renglon de busqueda.

- EDICION: recoje los datos ya modificados del formulario html dinamica y realiza directamente cambios utilizando el comando sql update en la base de datos.

b) A continuación copiar el siguiente código:

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

<%! int clave=0; %><%// codigo del evento BUSQUEDA y recordar construir una nueva forma dinamica

if(request.getParameter("BUSCAR") != null){

Connection canal = null;ResultSet tabla= null;Statement instruccion=null;String strcon = "jdbc:mysql://localhost/estudiante?user=root&password=uigv";try {

Class.forName("com.mysql.jdbc.Driver").newInstance();canal=DriverManager.getConnection(strcon);instruccion = canal.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);} catch(java.lang.ClassNotFoundException e){} catch(SQLException e) {};

clave = Integer.parseInt(request.getParameter("CLAVEB"));String q="select * from persona where clave="+clave;try { tabla = instruccion.executeQuery(q);tabla.next();out.println("<FORM ACTION=modifica.jsp METHOD=POST>");out.println("NOMBRE:<INPUT TYPE=TEXT NAME=NOMBRE VALUE= "+ tabla.getString(2)+ "><BR>");out.println("EDAD:<INPUT TYPE=TEXT NAME=EDAD VALUE= "+ tabla.getString(3)+ "><BR>");out.println("ESTATURA:<INPUT TYPE=TEXT NAME=ESTATURA VALUE= "+ tabla.getString(4)+ "><BR>");out.println("<INPUT TYPE=SUBMIT NAME=EDITAR VALUE=EDITAR><BR>");tabla.close();instruccion.close();canal.close();

} catch(SQLException e) {} catch(Exception ex){};

}; // fin evento buscar

// codigo de evento EDICION

String temp2=request.getParameter("EDITAR");if(temp2==null)temp2=" ";

if(temp2.compareTo("EDITAR")==0)

Page 14: MSc. Daniel Alejandro Yucra Sotomayor Pag. - 1somoslibres.org/dam/Parte_1/Laboratorio_3.pdf · MYSQL “Mysqld” y debe haber descomprimido una versión de phpMyadmin en la carpeta

Ingeniería de Software II

MSc. Daniel Alejandro Yucra Sotomayor Pag. - 14 -

{

String nombre,q ;int edad; float estatura;Connection canal = null;ResultSet tabla= null;Statement instruccion=null;String strcon = "jdbc:mysql://localhost/estudiante?user=root&password=uigv";

try {

Class.forName("com.mysql.jdbc.Driver").newInstance();canal=DriverManager.getConnection(strcon);instruccion = canal.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);

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

try {

tabla = instruccion.executeQuery("select * from persona");} catch(SQLException e) {};

nombre = request.getParameter("NOMBRE");edad = Integer.parseInt(request.getParameter("EDAD"));estatura = Integer.parseInt(request.getParameter("ESTATURA"));

q = "UPDATE persona SET "+ "NOMBRE='"+ nombre+ "', EDAD="+ edad+",estatura="+estatura+" WHERE clave=" + clave+";";

try{instruccion.executeUpdate(q); }catch(SQLException e) {};

try {tabla.close();instruccion.close();canal.close();} catch(SQLException e) {};

out.println("REGISTRO EDITADO");

}; // fin evento editar

// construyendo forma dinamica

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

out.println("CLAVE EDITAR:<INPUT TYPE=TEXT NAME=CLAVEB><BR>");out.println("<INPUT TYPE=SUBMIT NAME=BUSCAR VALUE=BUSCAR ><BR>");out.println("</FORM>");

%>

c) El resultado de la presentación se muestra a continuación

Page 15: MSc. Daniel Alejandro Yucra Sotomayor Pag. - 1somoslibres.org/dam/Parte_1/Laboratorio_3.pdf · MYSQL “Mysqld” y debe haber descomprimido una versión de phpMyadmin en la carpeta

Ingeniería de Software II

MSc. Daniel Alejandro Yucra Sotomayor Pag. - 15 -

Figura 16: Ingresando código de búsqueda de registro

Figura 17: Modificando Datos de un registro

Figura 18: Resultado de la confirmación del registro editado

Page 16: MSc. Daniel Alejandro Yucra Sotomayor Pag. - 1somoslibres.org/dam/Parte_1/Laboratorio_3.pdf · MYSQL “Mysqld” y debe haber descomprimido una versión de phpMyadmin en la carpeta

Ingeniería de Software II

MSc. Daniel Alejandro Yucra Sotomayor Pag. - 16 -

7. Eliminar Registro

a) Para crear el script que permita eliminar registros debe crear el archivo “eliminar.jsp”,

Para este ejemplo para eliminar se debe buscar el registro, el modelo que estamos usando es la instrucción SQL DELETE (DELETE FROM TABLA WHERE CONDICION) y el resultado utilizando RESULTSET.EXECUTEUPDATE()

b) A continuación copiar el siguiente código:

<%@ page import="java.io.*,java.util.*,java.net.*,java.sql.*" %><%// declarando y creando objetos globalesConnection canal = null;ResultSet tabla= null;Statement instruccion=null;String strcon = "jdbc:mysql://localhost/estudiante?user=root&password=uigv";if(request.getParameter("OK") != null)

{

// abriendo canal o enlace en su propio try-catchtry {

Class.forName("com.mysql.jdbc.Driver").newInstance();canal=DriverManager.getConnection(strcon);instruccion = canal.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);

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

// preparando condicion de eliminacionint clave = Integer.parseInt(request.getParameter("CLAVEB"));// construyendo select con condicion eliminacion SQL DELETEString q="delete from persona where clave = "+clave;

// mandando SQL a tabla en discotry { instruccion.executeUpdate(q);

// avisandoout.println("registro eliminado");

} //fin try no usar ; al final de dos o mas catchs

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

try {

// no ocupa cerrar tabla(), no se leyo (select) un resultset// la eliminacion fue directa en disco

instruccion.close();canal.close();} catch(SQLException e) {};

};

// construyendo forma dinamicaout.println("<FORM ACTION=eliminar.jsp METHOD=post>");out.println("CLAVE ELIMINAR:<INPUT TYPE=TEXT NAME=CLAVEB><BR>");out.println("<INPUT TYPE=SUBMIT NAME=OK VALUE=ELIMINAR><BR>");out.println("</FORM>");%>

Page 17: MSc. Daniel Alejandro Yucra Sotomayor Pag. - 1somoslibres.org/dam/Parte_1/Laboratorio_3.pdf · MYSQL “Mysqld” y debe haber descomprimido una versión de phpMyadmin en la carpeta

Ingeniería de Software II

MSc. Daniel Alejandro Yucra Sotomayor Pag. - 17 -

c) Este es el resultado que debe mostrar a continuación:

Figura 19: Busca un registro

Figura 20: Confirmación de la eliminación

FACULTAD DE INGENIERÍA DE COMPUTO Y SISTEMASDocente: MSc. Daniel Alejandro Yucra SotomayorLima, Agosto, del 2011Consultas: [email protected]