Вы находитесь на странице: 1из 4

Consulta de Base de Datos con JSP usando una Clase Java separada - ...

http://chuwiki.chuidiang.org/index.php?title=Consulta_de_Base_de_Da...

Consulta de Base de Datos con JSP usando una Clase Java separada
0
Twittear 0

De ChuWiki

Contenido
1 Introduccin 2 La clase Contacto 3 La clase de consultas a base de datos 4 La pgina JSP 5 Meter todo en tomcat

Introduccin
Vimos en Consulta de Base de Datos desde JSP que podiamos meter todo el cdigo java dentro de una pgina jsp. En ese ejemplo hicimos una consulta a base de datos para mostrar en el navegador los resultados. Vamos a hacer ahora el mismo ejemplo, pero llevndonos parte del cdigo java que estaba dentro de la pgina jsp a una clase Java separada, de forma que desde jsp llamaremos a esa clase. En el ejemplo anterior usbamos una base de datos MySQL con una tabla as
mysql> describe contacto; +-----------+-------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-----------+-------------+------+-----+---------+----------------+ | id | int(11) | NO | PRI | NULL | auto_increment | | nombre | varchar(20) | YES | | NULL | | | apellidos | varchar(20) | YES | | NULL | | | telefono | varchar(20) | YES | | NULL | | +-----------+-------------+------+-----+---------+----------------+ 4 rows in set (1.17 sec)

La clase Contacto
1 de 4 04/01/2012 2:22

Consulta de Base de Datos con JSP usando una Clase Java separada - ...

http://chuwiki.chuidiang.org/index.php?title=Consulta_de_Base_de_Da...

Nos har falta una clase java para representar cada uno de los registros en la tabla anterior. Haremos una clase Contacto, con cuatro atributos, uno por campo, y los mtodos get y set adecuados para cada campo. La clase puede ser as
package chuidiang.ejemplos; public class Contacto { int id; String nombre; String apellido; String telefono; public String getApellido() { return apellido; } public void setApellido(String apellido) { this.apellido = apellido; } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getNombre() { return nombre; } public void setNombre(String nombre) { this.nombre = nombre; } public String getTelefono() { return telefono; } public void setTelefono(String telefono) { this.telefono = telefono; } }

La clase de consultas a base de datos


Para no complicarnos la vida, haremos una clase java con un nico mtodo esttico que consulte a la base de datos y nos devuelva una lista de Contacto. Puede ser ms o menos as
package chuidiang.ejemplos; import import import import import java.sql.Connection; java.sql.DriverManager; java.sql.ResultSet; java.sql.Statement; java.util.LinkedList;

public class ConsultaAgenda { public static LinkedList<Contacto> getContactos() { LinkedList<Contacto> listaContactos=new LinkedList<Contacto>(); try { Class.forName("org.gjt.mm.mysql.Driver"); Connection conexion = DriverManager.getConnection( "jdbc:mysql://localhost/agenda", "usuario", "password"); Statement st = conexion.createStatement(); ResultSet rs = st.executeQuery("select * from contacto" ); while (rs.next()) { Contacto contacto = new Contacto(); contacto.setId(rs.getInt("id")); contacto.setNombre(rs.getString("nombre")); contacto.setApellido(rs.getString("apellidos")); contacto.setTelefono(rs.getString("telefono")); listaContactos.add(contacto); } rs.close(); st.close(); conexion.close(); } catch (Exception e) { e.printStackTrace();

2 de 4

04/01/2012 2:22

Consulta de Base de Datos con JSP usando una Clase Java separada - ...

http://chuwiki.chuidiang.org/index.php?title=Consulta_de_Base_de_Da...

} return listaContactos; } }

La pgina JSP
Ahora slo nos queda la pgina jsp. En la pgina jsp debemos poner los import de nuestras dos clases Java y del LinkedList que nos devuelve la clase ConsultaAgenda. Simplemente hacemos la consulta llamando a la ClaseAgenda y luego hacemos un bucle para ir metiendo los resultados en un TABLE de html.
<!-- Los import --> <%@ page language="java" %> <%@ page import = "chuidiang.ejemplos.Contacto"%> <%@ page import = "chuidiang.ejemplos.ConsultaAgenda"%> <%@ page import = "java.util.LinkedList"%> <html> <body> <h1>Consulta a base de datos</h1> <table border="1"> <tr> <td>id</td> <td>nombre</td> <td>apellido</td> <td>telefono</td> </tr> <% LinkedList<Contacto> lista = ConsultaAgenda.getContactos(); for (int i=0;i<lista.size();i++) { out.println("<tr>"); out.println("<td>"+lista.get(i).getId()+"</td>"); out.println("<td>"+lista.get(i).getNombre()+"</td>"); out.println("<td>"+lista.get(i).getApellido()+"</td>"); out.println("<td>"+lista.get(i).getTelefono()+"</td>"); out.println("</tr>"); } %> </table> </body> </html>

Meter todo en tomcat


Una vez que hemos compilado las clases java, en el directorio de tomcat donde estn nuestras aplicaciones -en el ejemplo se pone la ubicacin por defecto-, debemos poner lo siguiente:
$(TOMCAT_HOME)/webapp/NuestroEjemplo/WEB-INF/lib/mysql-connector-java-5.0.5.jar $(TOMCAT_HOME)/webapp/NuestroEjemplo/WEB-INF/classes/chuidiang/ejemplos/Contacto.class $(TOMCAT_HOME)/webapp/NuestroEjemplo/WEB-INF/classes/chuidiang/ejemplos/ConsultaAgenda.class $(TOMCAT_HOME)/webapp/NuestroEjemplo/WEB-INF/web.xml $(TOMCAT_HOME)/webapp/NuestroEjemplo/index.jsp

El fichero web.xml que aparece es un fichero tonto, por poner algo


<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd" > <web-app> <display-name>Mis Pruebas</display-name> </web-app>

3 de 4

04/01/2012 2:22

Consulta de Base de Datos con JSP usando una Clase Java separada - ...

http://chuwiki.chuidiang.org/index.php?title=Consulta_de_Base_de_Da...

Otra opcin es meter nuestros dos .class en un fichero .jar y meterlo en el directorio lib Con todo esto, ya no hay que hacer sino visualizar en el navegador http://localhost:8080/NuestroEjemplo y deberamos ver nuestra lista de contactos almacenados en la base de datos. Obtenido de "http://chuwiki.chuidiang.org /index.php?title=Consulta_de_Base_de_Datos_con_JSP_usando_una_Clase_Java_separada" Categora: J2EE

Esta pgina fue modificada por ltima vez el 20:38, 25 abr 2007.

Esta obra est bajo una licencia de Creative Commons. Para reconocer la autora debes poner http://www.chuidiang.com/chuwiki

4 de 4

04/01/2012 2:22

Вам также может понравиться