Sie sind auf Seite 1von 5

Consulta de Base de Datos con JSP usando una Clase Java separada - Ch... http://chuwiki.chuidiang.org/index.php?title=Consulta_de_Base_de_Dato...

Consulta de Base de Datos con JSP usando una


Clase Java separada
De ChuWiki

Contenido
1 Introducción
2 La clase Contacto
3 La clase de consultas a base de datos
4 La página JSP
5 Meter todo en tomcat

Introducción
Vimos en Consulta de Base de Datos desde JSP que podiamos meter todo el código java dentro de una página
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 llevándonos parte del código java que estaba dentro de la página
jsp a una clase Java separada, de forma que desde jsp llamaremos a esa clase.

En el ejemplo anterior usábamos una base de datos MySQL con una tabla así

1 de 5 08/07/2010 01:23 a.m.


Consulta de Base de Datos con JSP usando una Clase Java separada - Ch... http://chuwiki.chuidiang.org/index.php?title=Consulta_de_Base_de_Dato...

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
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 métodos 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 método estático que consulte a la base de
datos y nos devuelva una lista de Contacto. Puede ser más o menos así

2 de 5 08/07/2010 01:23 a.m.


Consulta de Base de Datos con JSP usando una Clase Java separada - Ch... http://chuwiki.chuidiang.org/index.php?title=Consulta_de_Base_de_Dato...

package chuidiang.ejemplos;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import 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();
}
return listaContactos;
}
}

La página JSP
Ahora sólo nos queda la página jsp. En la página 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.

3 de 5 08/07/2010 01:23 a.m.


Consulta de Base de Datos con JSP usando una Clase Java separada - Ch... http://chuwiki.chuidiang.org/index.php?title=Consulta_de_Base_de_Dato...

<!-- 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 estén nuestras aplicaciones -en
el ejemplo se pone la ubicación 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>

Otra opción 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
deberíamos 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"
Categoría: J2EE

4 de 5 08/07/2010 01:23 a.m.


Consulta de Base de Datos con JSP usando una Clase Java separada - Ch... http://chuwiki.chuidiang.org/index.php?title=Consulta_de_Base_de_Dato...

Esta página fue modificada por última vez el 20:38, 25 abr 2007.

Esta obra está bajo una licencia de Creative Commons.


Para reconocer la autoría debes poner http://www.chuidiang.com/chuwiki

5 de 5 08/07/2010 01:23 a.m.

Das könnte Ihnen auch gefallen