Conectar a la base de datos desde JSP

3.9.08. Por ooscarr (ooscarr)

Netbeans

Con JSTL, conectarse a una base de datos es sencillo y no requiere todo ese peligroso código Java que antes producía dolores de cabeza y frustración.

Preparación

Luego de crear el proyecto JSP y antes de conectar a la base de datos, hay que instalar las librerías Java para la base de datos.

  1. Vamos a las propiedades del proyecto, en la sección Librerías presionamos el botón Add Library... (Agregar librería...)

    Panel de propiedades del proyecto en Netbeans

  2. Importar

    Importar librería en Netbeans

  3. Seleccionamos la librería de PostgreSQL (o Mysql, según...)

    PostgreSQL JDBC Driver
    Aprovechar de agregar la JSTL si no ha sido incluida.

  4. Add Library (Agregar Librería)

    Add Library

  5. OK

Conexión

Luego creamos un JSPF para la conexión

  1. Nuevo archivo > JSP

  2. Le ponemos un nombre...

    Nuevo archivo JSP(F) en Netbeans
    Nos aseguramos que el archivo quede en la carpeta WEB-INF/jspf

El árbol de archivos del proyecto indicando Web Pages > WEB-INF > jspf > conexion.jspf

conexion.jspf

El código del archivo conexion.jspf contendría sólo y nada más que:

<sql:setDataSource driver="org.postgresql.Driver"
 url="jdbc:postgresql://locahost:5432/usuario"
 user="usuario"
  password="contraseña"
 var="bdatos" />

* Si se utiliza Mysql, cambiar parte de la segunda línea por jdbc:mysql://
** Si el servidor se encuentra en otra máquina, cambiar la parte locahost:5432 por la IP y el puerto correspondiente.

La conexión se guarda en una variable var="bdatos" para poder ser usada después en el código.

Código

Ya en el código JSP, primero agregamos el tag sql

<%@taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql"%>

Y después llamamos a la parte de la conexión como siempre con:

<%@include file="/WEB-INF/jspf/conexion.jspf" %>

Por ejemplo, el código completo de una página con una consulta simple sería:

index.jsp

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
 <head>
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
  <title>Página JSP</title>
 </head>
 <body>
  <h1>¡Hola, mundo!</h1>

<%@include file="/WEB-INF/jspf/conexion.jspf" %>
<sql:transaction dataSource="${bdatos}">

 <c:catch var="ex">
  <sql:query var="encontrados">
   SELECT primer_nombre FROM persona LIMIT 4
  </sql:query>
 </c:catch>


 <c:choose>
  <c:when test="${not empty ex}">
   <p>Problema: <c:out value="${ex.message}"/></p>
  </c:when>
  <%-- Si no hubo ninguna excepción --%>
  <c:otherwise>


   <c:choose>

    <%-- Si encontró algo --%>
    <c:when test="${encontrados.rowCount>0}">
     <ol>
      <c:forEach items="${encontrados.rows}" var="persona">
       <li><c:out value="${persona.primer_nombre}" /></li>
      </c:forEach>
     </ol>


    </c:when>
    <c:otherwise>
     <p>No se encontraron datos.</p>
    </c:otherwise>
   </c:choose>

  </c:otherwise>
 </c:choose>
</sql:transaction>
 </body>
</html>

Ejecución

ver index.jsp.

Etiquetas: , ,

2 comentarios (RSS ATOM) :

  1. A las 6/9/08 6:19 PM  

    Anonymous Anónimo ha dicho...

    hola mi llamo Richard Albrecht soy de chile porfavor nesecito tu ayudes en la universisdad me han pedido que cambie los paneles jframe a un diseño como las ventanas q estan en tu pagina de netbeans me dijieron con un jar q tengo q agrgar para cambiar los paneles; si no me entendistes aqui te dejo mi correo RICHARD_A_H_02@HOTMAIL.COM

  2. A las 24/9/08 3:50 PM  

    OpenID elblog ha dicho...

    Me encuentro muy ocupado ahora como para averiguarlo. Pero puedo decir que en java hay métodos para que la interfaz de las ventanas se adapte al sistema operativo en el que se esté ejecutando el software. Por eso, en Mac OS X la interfaz de usuario se ve de esa forma, como el mismo programa en las diferentes versiones de Windows se ve de otra, Linux otra, y la nativa de Java que viene por defecto con botoncitos azules. No dudo que exista una librería para que los jframes emulen la apariencia de la interfaz gráfica del sistema operativo Mac OS X.

Página principal

Publicidad