Docencia Autor

Java Server Pages: Acceso a una base de datos

Si necesita acceder y consultar una tabla usando JSP, debe hacer uso de JDBC. Estos son los pasos para tener acceso a una base de datos Microsoft Access (pero fácilmente puede aplicarse a otros motores de bases de datos como MySQL, Oracle, etc...)

En primer lugar detenga el Tomcat (Stop Tomcat)

Vaya al directorio donde instaló el Tomcat y sitúese en el directorio \webapps , allí se crea una nueva carpeta llamada jdbc (puede ponerle otro nombre si quiere) y dentro de esta carpeta se crea estos directorios

\webapps\jdbc\WEB-INF
\webapps\jdbc\WEB-INF\classes
\webapps\jdbc\WEB-INF\tds
\webapps\jdbc\WEB-INF\lib

Como se ve en la imagen:

Debe copiar dos archivos en \webapps\jdbc\WEB-INF\lib, de clic aquí para descargarlos. Observe la imagen:

Ahora debe crear el archivo web.xml y situarlo en la carpeta \webapps\jdbc\WEB-INF\, como se ve en la imagen:

El texto es:

<?xml version="1.0" encoding="ISO-8859-1"?>

<!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>
</web-app>

Debe crear una base de datos usando Microsoft Access la llamaré PRUEBA, en esta base de datos creo una simple tabla llamada LIBROS con los siguientes campos: Titulo (texto), Autor (texto), Precio (numérico). De clic aquí para descargar el archivo. Observe la imagen:

Y le agrega datos


Debe crear luego un acceso ODBC a esa base de datos (debe tener privilegios de administrador en la máquina), siga los pasos que se muestran en las imágenes:

Ahora debe crear el archivo jdbc.jsp (puede ponerle otro nombre si quiere) para tener acceso a esa base de datos. Este es el código:

<html>
<head>
<title>Conectandose a una base de datos</title>
</head>
<body>
<%@ page import="java.sql.*" %>

<%!
// Variables usadas para conectarse a la base de datos y extraer registros
Connection objConexion;
Statement objSQL;
ResultSet objRegistros;
ResultSetMetaData objMetaDatos;
%>

<%
Class.forName( ("sun.jdbc.odbc.JdbcOdbcDriver") );
objConexion = DriverManager.getConnection("jdbc:odbc:Prueba","","");
objSQL = objConexion.createStatement();
objRegistros = objSQL.executeQuery("SELECT * FROM LIBROS");
objMetaDatos = objRegistros.getMetaData();
%>

<table width="100%" border="1">
<tr>
    <% for( int iCont=1; iCont <= objMetaDatos.getColumnCount(); iCont++ ) { %>
    <%-- Obtenemos los nombres de las columnas --%>
    <th><%= objMetaDatos.getColumnLabel(iCont) %></th>
    <% } %>
</tr>

<% while( objRegistros.next() ) { %>
<tr>
    <% for( int iCont=1; iCont <= objMetaDatos.getColumnCount(); iCont++ ) { %>
    <%-- Recuperamos los valores de las columnas que
            corresponden a cada uno de los registros de la
            tabla. Hay que recoger correctamente el tipo de
            dato que contiene la columna --%>
    <% if( iCont == 3 ) { %>
    <td><%= objRegistros.getInt(iCont) %></td>
    <% } else { %>
    <td><%= objRegistros.getString(iCont) %></td>
    <% } } %>
</tr>
<% } %>
</table>
</body>
</html>

Y por último no olvide modificar server.xml del TomCat

Active el Tomcat "Start Tomcat", abra el navegador y escriba la dirección:

http://localhost:8080/jdbc/jdbc.jsp

Este debe ser el resultado: