Vous êtes sur la page 1sur 11

USO DE PROCEDIMIENTOS ALMACENADOS http://www.jsoftnet.com/Storeproc.html <%@page import="java.util.Vector"%> <html> <body onload="frm.t1.focus();"> <form method="post" name="frm" action="save.

jsp"> <table border="0" align="center" width="450"> <caption><h2>Registro de Hoteles</caption> <tr> <td>Hotel : </td> <td><input type="text" name="t1" size=25/></td> </tr> <tr> <td>Telefono :</td> <td><input type="text" name="t2" size=15/></td> </tr> <tr> <td>Direccion : </td> <td><input type="text" name="t3" size=45/></td> </tr> <tr> <td>Email :</td> <td><input type="text" name="t4" size=45/></td> </tr> <tr> <td>Observaciones :</td> <td><textarea rows="5" cols="35" name="t5"></textarea></td> </tr> <tr> <td>Ciudad :</td> <td><select name="lstciu" style="width:160"> <% Modelo.opera obj = new Modelo.opera(); Vector v = obj.Listado(); for (int i=0;i<v.size();i++){ String[] datos = (String[])v.get(i);%> <option value="<%=datos[0]%>"><%=datos[1]%> <%}%> </select></td> </tr> <tr> <td colspan="2" align="center">

<input type=submit value="Guardar" name="b1"> <input type=submit value="Listado" name="b2"> </td> </tr> </table> </form> </body> </html>

save.jsp <%@page import="java.sql.*"%> <% try{ //Recibe los datos enviados desde index.jsp String hot = request.getParameter("t1"); String tlf = request.getParameter("t2"); String dir = request.getParameter("t3"); String email = request.getParameter("t4"); String notas = request.getParameter("t5");

String ciu = request.getParameter("lstciu"); Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); Connection con; con=DriverManager.getConnection("jdbc:odbc:bdsabre"); CallableStatement proc = con.prepareCall("{call sp_save(?,?,?,?,?,?)}"); proc.setString(1,hot); proc.setString(2,tlf); proc.setString(3,dir); proc.setString(4,email); proc.setString(5,notas); proc.setString(6,ciu); proc.execute();//Ejecuta el proc. almacenado out.println("<h3>Registro guardado</h3>"); out.println("<a href='index.jsp'>Inicio</a>"); } catch(Exception ex){ } %>

Consulta1.jsp

<%@page import="java.util.Vector"%> <html> <body> <%Modelo.opera obj = new Modelo.opera();%> <form method="Post" name="frm"> <center> Seleccione Ciudad : <select name=lstCiudad onchange="document.frm.submit();"> <% Vector v = obj.Listado(); out.println(v.size()); for (int i=0;i<v.size();i++){ String[] datos = (String[])v.get(i);%> <% if (request.getParameter("lstCiudad")!=null){ if (request.getParameter("lstCiudad").equals(datos[0])){%> <option value="<%=datos[0]%>" selected><%=datos[1]%> <%}else{%> <option value="<%=datos[0]%>"><%=datos[1]%> <%}%> <%}else{%> <option value="<%=datos[0]%>"><%=datos[1]%> <%}}%> </select> </center> </form> <table align="center" width="700" border="1" cellspacing="0"> <tr style="color:ffffff;backgroundcolor:000000"><th>Hostal<th>Telefono<th>Direccion<th>Email<th>Ob servacion <% if (request.getParameter("lstCiudad")!=null){ String cod = request.getParameter("lstCiudad"); Vector lisCiu=obj.Listado(cod); for (int i=0;i<lisCiu.size();i++){ String[] datos = (String[])lisCiu.get(i);%> <tr><td><%=datos[0]%><td><%=datos[1]%><td><%=datos[2]%> <td><%=datos[3]+"&nbsp;"%><td><%=datos[4]+"&nbsp;"%> <%}}%> </table> </body> </html>

Consulta2.jsp <html> <body onload="frm.t1.focus();"> <form method="post" name="frm"> <center> Ingrese codigo : <input type=text name=t1 size="5"> <input type=submit value="Buscar" name="b1"> </center> </form> <% if (request.getParameter("b1")!=null){ Modelo.opera obj = new Modelo.opera(); int c = Integer.parseInt(request.getParameter("t1")); String[] resul = obj.BuscarHotel(c); if (resul[0]==null){ out.println("<h3>Codigo no existe</h3>"); } else { out.println("<ul type=circle>"); out.println("<li>Hotel : " + resul[0]); out.println("<li>Telefono : " + resul[1]); out.println("<li>Direccion : " + resul[2]);

out.println("<li>Email : " + resul[3]); out.println("</ul>"); } } %> </body> </html> Consulta3.jsp

<html> <body onload="frm.t1.focus();"> <form method="post" name="frm"> <center> Ingrese codigo : <input type=text name=t1 size="5"> <input type=submit value="Buscar" name="b1"> </center> </form> <% if (request.getParameter("b1")!=null){ Modelo.Mante obj = new Modelo.Mante(); int c = Integer.parseInt(request.getParameter("t1")); String[] resul = obj.Listado(c); if (resul[0]==null){ out.println("<h3>Codigo no existe</h3>"); }

else { out.println("<ul type=circle>"); out.println("<li>Producto : " + resul[0]); out.println("<li>Precio : " + resul[1]); out.println("<li>Stock : " + resul[2]); out.println("</ul>"); } } %> </body> </html> Mante.java package Modelo; import java.sql.*; public class Mante { Connection con; public Mante(){ try { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); con=DriverManager.getConnection("jdbc:odbc:bdNorth"); } catch(Exception ex){} } public String[] Listado(int cc){ String[] pro = new String[3]; try{ CallableStatement proc = con.prepareCall("{call sp_find(?)}"); proc.setInt(1,cc); ResultSet rs = proc.executeQuery(); rs.next(); //mostrar resultset pro[0] = rs.getString(1); pro[1] = rs.getDouble(2)+""; pro[2] = rs.getInt(3)+""; } catch(Exception ex)

{ System.out.println(ex.toString()); } return pro; }

opera.java (package Modelo) package Modelo; import java.sql.*; import java.util.Vector; public class opera { Connection con; public opera(){ try { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); con=DriverManager.getConnection("jdbc:odbc:bdsabre"); } catch(Exception ex){} } public Vector Listado(){ Vector v = new Vector(); try{ CallableStatement proc = con.prepareCall("{call sp_consulta}"); ResultSet rs = proc.executeQuery(); //mostrar resultset while (rs.next()){ String[] datos = new String[2]; datos[0] = rs.getString(1); datos[1] = rs.getString(2); v.add(datos); } } catch(Exception ex) { System.out.println(ex.toString()); } return v; }

public Vector Listado(String ciu){ Vector v = new Vector(); try{ CallableStatement proc = con.prepareCall("{call sp_hoteles(?)}"); proc.setString(1,ciu); ResultSet rs = proc.executeQuery(); //mostrar resultset while (rs.next()){ String[] datos = new String[5]; datos[0] = rs.getString(1); datos[1] = rs.getString(2); datos[2] = rs.getString(3); datos[3] = rs.getString(4); datos[4] = rs.getString(5); v.add(datos); } } catch(Exception ex) { System.out.println(ex.toString()); } return v; } public String[] BuscarHotel(int cc){ String[] datos = new String[4]; try { CallableStatement proc = con.prepareCall("{call sp_hotel(?,?,?,?,?)}"); proc.setInt(1,cc); proc.registerOutParameter(2,Types.VARCHAR); proc.registerOutParameter(3,Types.VARCHAR); proc.registerOutParameter(4,Types.VARCHAR); proc.registerOutParameter(5,Types.VARCHAR); proc.execute(); String nom = proc.getString(2); String tlf = proc.getString(3); String dir = proc.getString(4); String cor = proc.getString(5); datos[0] = nom; datos[1] = tlf; datos[2] = dir; datos[3] = cor; } catch(Exception ex){}

return datos; } }

Procedimientos Almacenados create proc sp_save @hos_nombre varchar(200), @hos_telefono varchar(20), @hos_direccion varchar(200), @hos_email varchar(200), @hos_observacion varchar(200), @ci_siglas varchar(10) as declare @ch int,@n int set @n= (select count(*) from vi_hospedaje) if @n=0 set @ch=1 else set @ch = (select max(hos_codigo) from vi_hospedaje)+1 insert into vi_hospedaje (hos_codigo,hos_nombre,hos_telefono,hos_direccion,hos_email,hos_ observacion,ci_siglas) values (@ch,@hos_nombre,@hos_telefono,@hos_direccion,@hos_email,@h os_observacion,@ci_siglas) create proc sp_consulta as select ci_siglas,ci_nombre from vi_ciudad create proc sp_hoteles @cod char(10) as select hos_nombre,hos_telefono,hos_direccion,hos_email,hos_observacion from vi_hospedaje where ci_siglas=@cod create proc sp_hotel @cod int, @nom varchar(200) output, @tlf varchar(20) output,

@dir varchar(200) output, @email varchar(50) output as select @nom=hos_nombre,@tlf=hos_telefono,@dir=hos_direccion, @email=hos_email from vi_hospedaje where hos_codigo=@cod