UNIDAD 5: INTRODUCION A LAS BASES DE DATOS

TEMA JAVA SERVLET 13: EDICION DE REGISTROS

Editar registros significa cambiar el contenido de algunos de los campos o columnas por nueva informacíón o para corregir algun error de captura original o para agregar alguna columna que no existia por modificación de la tabla o la base de datos.

En general se tiene otro problema de sql UPDATE, sin embargo ahora se tendran que construir varios programas, estos son:

1.- prog23.html: una forma normal de busqueda por clave

2.- prog23.java: el mismo programa de busqueda por clave, pero ahora debera construir una forma.html dinamica( es decir un monton de system.console.writeline), que contendra un form action apuntando o ejecutando al prog24.java, ademas tendra todos los input text necesarios para cargar cada celda del renglon de busqueda.

3.- prog24.java: recoje los datos ya modificados de la forma.html dinamica y realiza directamente un sql update en la base de datos

prog23.html

<HTML>
<FORM ACTION=http://programacionfacil.com:9090/tusitio/servlet/prog23 METHOD=post>
CLAVE A MODIFICAR.:<INPUT TYPE=text NAME=CLAVE><BR>
<INPUT TYPE=submit VALUE=BUSCAR>
</FORM></HTML>

prog23.java

import java.io.*;
import java.util.*;
import java.net.*;
import java.sql.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class prog23 extends HttpServlet
{
// globales se ocupan varias veces
PrintWriter pagina;
Connection canal = null;
ResultSet tabla= null;
Statement instruccion=null;
String sitiobase = "c:/progfacil/lauro/mibase.mdb";
String strcon= "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=" + sitiobase;
public void doPost (HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException
{
pagina =response.getWriter();
response.setContentType("text/html");
pagina.println("<HTML>");
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) {};
int clave = Integer.parseInt(request.getParameter("CLAVE"));
String q="select * from mitabla where clave="+clave;
try { tabla = instruccion.executeQuery(q);
tabla.next();
pagina.println("<FORM ACTION=http://programacionfacil.com:9090/tusitio/servlet/prog24 METHOD=POST>");
pagina.println("CLAVE:<INPUT TYPE=TEXT NAME=CLAVE VALUE="+ tabla.getString(1)+ "><BR>");
pagina.println("NOMBRE:<INPUT TYPE=TEXT NAME=NOMBRE VALUE= "+ tabla.getString(2)+ "><BR>");
pagina.println("EDAD:<INPUT TYPE=TEXT NAME=EDAD VALUE= "+ tabla.getString(3)+ "><BR>");
pagina.println("<INPUT TYPE=SUBMIT VALUE=EDITAR></FORM>");
tabla.close();canal.close();
} catch(SQLException e) {} catch(Exception ex){};
pagina.println("</HTML>");
pagina.close();
};
public void destroy(){super.destroy();};
}

Prog24.java

import java.io.*;
import java.util.*;
import java.net.*;
import java.sql.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class prog24 extends HttpServlet
{
// globales se ocupan varias veces
PrintWriter pagina;
Connection canal = null;
ResultSet tabla= null;
Statement instruccion=null;
String sitiobase = "c:/progfacil/lauro/mibase.mdb";
String strcon= "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=" + sitiobase;
public void doPost (HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException
{
pagina =response.getWriter();
response.setContentType("text/html");
pagina.println("<HTML>");
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) {};
String nombre,q ;
int clave, edad;
try {
tabla = instruccion.executeQuery("select * from mitabla");
} catch(SQLException e) {};
clave = Integer.parseInt(request.getParameter("CLAVE"));
nombre = request.getParameter("NOMBRE");
edad = Integer.parseInt(request.getParameter("EDAD"));
q = "UPDATE mitabla SET "+ "NOMBRE='"+ nombre+ "', EDAD="+ edad+" WHERE clave=" + clave+";";
try{instruccion.executeUpdate(q); }catch(SQLException e) {};
try {canal.close();tabla.close(); } catch(SQLException e) {};
pagina.println(q);
pagina.println("</HTML>");
pagina.close();
};
public void destroy(){super.destroy();};
}

Veamos la corrida completa:

(tabla original)

image456.jpg

prog23.html

image325.jpg

forma dinamica que construye el prog23.java

image457.jpg

prog24.java respondiendo y nueva tabla

image459.jpg

no fue raton fue batman!!

TAREAS PROGRAMACION JAVA SERVLETS :

1.- construir programas de edición para sus tablas y bases de datos

Politica de Privacidad