UNIDAD 7: JAVA JSP INTRODUCION A LAS BASES DE DATOS

TEMA 8: INSERCION O ADICION DE REGISTROS SQL INSERT JAVA JSP

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.

Prog34.jsp

<%@ page import="java.io.*,java.util.*,java.net.*,java.sql.*" %>
<%! int cargarclave(){
// funcion para cargar nueva clave del nuevo registro a insertar
int cla =0;
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;
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");
// solo nos vamos al ultimo registro del resultset
tabla.last();
// y se lee la primera columna del ultimo renglon
cla = Integer.parseInt(tabla.getString(1));
// numreng=tabla.getRow();
tabla.close();instruccion.close(); canal.close();
} catch(SQLException ex){};
// ademas se debera regrasar incrementada en una unidad
return cla+1;
} //fin funcion cargarclave()
%>
<%
if(request.getParameter("GRABAR") != null)
{
// objetos de enlace
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;
// cargando la nueva clave que tendra el registro a insertar
int clave;
clave= cargarclave();
// abriendo otra vez el 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) {};
//cargando los demas campos a grabar
String nombre = request.getParameter("NOMBRE");
int edad = Integer.parseInt(request.getParameter("EDAD"));
// USANDO SQL insert into tabla values(clave, 'nom', edad);
String q="insert into mitabla values(" +clave +",'"+ nombre+"',"+edad+") ";
// cuidado con los apostrofes que debe llevar la string arriba
try {
// agregando renglon (insert)
int n=instruccion.executeUpdate(q);
//avisando que se hizo la instruccion
out.println("REGISTRO INSERTADO");
} catch(SQLException e) {out.println(e);};
try{
// observar que tabla.close() no se usa aqui porque no se regreso un resultset de la base en disco
// solo usar tabla.close() cuando se usa un SQL SELECT
instruccion.close();
canal.close();
} catch(SQLException e) {out.println(e);};
};
// construyendo forma dinamica
out.println("<FORM ACTION=prog34.jsp METHOD=post>");
out.println("CLAVE :"+cargarclave()+"<BR>");
out.println("NOMBRE :<INPUT TYPE=TEXT NAME=NOMBRE><BR>");
out.println("EDAD :<INPUT TYPE=TEXT NAME=EDAD><BR>");
out.println("<INPUT TYPE=SUBMIT NAME=GRABAR VALUE=INSERTAR ><BR>");
out.println("</FORM>");
%>

Corrida:

image60.jpg

corrida prog 33:

image61.jpg

El programa esta bien documentado.

se usa el metodo RESULTSET.LAST() para irse al ultimo renglon de la tabla en memoria o RESULTSET.

Luego se lee la primera columna del 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.

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

OBSERVAR QUE EXISTEN DOS METODOS PARA EL OBJETO STATEMENT:

a) STATEMENT.EXECUTEQUERY()→ USARLO PARA SQL SELECT

b) STATEMENT.EXECUTEUPDATE()→ USARLO PARA SQL INSERT, UPDATE, DELETE.

TAREAS PROGRAMACION JAVA JSP

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

Politica de Privacidad