UNIDAD 5: INTRODUCION A LAS BASES DE DATOS

TEMA JAVA SERVLET 8: INSERCION O ADICION DE REGISTROS

Insertar o agregar registros o renglones nuevos a una tabla en disco, es un proceso sencillo que usa la siguiente instrucción sql:

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

Recordar que solo se esta usando lo minimo de cada instrucción sql, es conveniente estudiar un tutorial de sql.

Prog18.html

<HTML>
<FORM ACTION=http://programacionfacil.com:9090/tusitio/servlet/prog18 METHOD=post>
NO SE CAPTURA CLAVE, DEBE SER ASIGNADA POR EL SISTEMA JAVA SERVLET<BR>
NOMBRE.:<INPUT TYPE=text NAME=NOMBRE><BR>
EDAD...:<INPUT TYPE=text NAME=EDAD><BR>
<INPUT TYPE=submit VALUE=INSERTAR>
</FORM></HTML>

corrida prog18.html

image311.jpg

prog18.java

import java.io.*;
import java.util.*;
import java.net.*;
import java.sql.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class prog18 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>");
int clave;
clave= cargarclave();
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) {};
//cargando los demas campos a grabar
String nombre = request.getParameter("NOMBRE");
int edad = Integer.parseInt(request.getParameter("EDAD"));
// insert into tabla values(clave, 'nom', edad);
String q="insert into mitabla values(" +clave +",'"+ nombre+"',"+edad+") ";
try {
// agregando renglon (insert)
int n=instruccion.executeUpdate(q);
//avisando que se hizo la instruccion
pagina.println("YA SE INSERTO, BACK PARA REGRESAR");
} catch(SQLException e) {};
try {canal.close(); instruccion.close(); } catch(SQLException e) {};
pagina.println("</HTML>");
pagina.close();
};
public int cargarclave()
{
int numreng=0;
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) {};
try {
tabla = instruccion.executeQuery("select * from mitabla");
tabla.last();
numreng=tabla.getRow();
instruccion.close(); canal.close();
} catch(SQLException ex){};
return numreng + 1;
}; //fin funcion cargarclave()
public void destroy(){super.destroy();};
}

notas:

el programa esta bien documentado:

se usa el metodo getrow de resultset para conocer cuantos renglones tiene la tabla

Con esta información ya se puede leer la primera columna para sacar el dato de la ultima clave

Luego se lee el ultimo renglon de la tabla para cargar la ultima clave grabada.

El metodo o declaracion devuelve el valor de la ultima clave que esta en el ultimo renglon de la tabla, incrementada en una unidad.

Al final se incremento en uno la variable entera para obtener el valor de la nuevaclave o clavesiguiente, misma que se cargo en su variable correspondiente

Se crea la string q, con el formato apropiado sql( como se dijo al principio de este TEMA JAVA SERVLET).

TAREAS PROGRAMACION JAVA SERVLET:

1.- construir muchos programas de inserccion en las tablas de las bases de datos que tengan construidas

Politica de Privacidad