Download Accediendo a base de datos desde un Servlet

Document related concepts
no text concepts found
Transcript
Accediendo a base de datos
desde un Servlet

¿Tengo código de un servlet?




Hay código de servlet en el primer documento pdf
donde se comienza con scripts CGI.
Hay código de servlet en la app ejemplo que
instalamos. En ese momento practicábamos
desplegar en tomcat server un fichero WAR.
Consigues más código desde la web, tal como
vimos con la app sample.
En esta práctica modificamos el código de un
servlet de una app que hemos desplegado
en Tomcat.
Accedemos a una BD MySQL




Tenemos instaldo y verificado un servidor
MySQL, esto fue motivo de una práctica
anterior.
Hemos creado una BD, al menos de ejemplo.
Hemos consultado la BD de ejemplo. Para esto
hemos usado el cliente MySQL.
Ahora nos proponemos conectar con la BD,
desde el servlet de nuestra app. Se trata de
realizar una consulta y mostrar el resultado.
JDBC


Es una API de Java que permite ejecutar
sentencias SQL.
Permite interactuar con las bases de datos
desde el código Java de nuestras apps, de
forma transparente.


Esto quiere decir que el programador no debe
pensar en las peculiaridades de los distintos
servidores de BD (Oracle, Postgres, MySQL,
SQLite, etc).
Independiza al programador del servidor de BD, la
manera de actuar con la BD es la misma.
Necesitamos un conector

Debemos descargar el driver JDBC para
MySQL. Este es el conector.



Lo conseguimos desde
www.mysql.com/products/connector/
Descargamos el archivo .zip. Una vez
descomprimido comprobamos que existe un
archivo .bin.jar, éste es el que contiene el
connector.
¿Donde ponemos el conector?

Tomcat es quien ejecuta la app que utiliza dicho
driver. El sitio es CATALINA_HOME/lib
¿Tenemos en cuenta algo más?
¿Cómo uso JDBC desde la app?

Pasos a realizar en la app:

Cargar el driver JDBC.

Conectar a la BD.

Crear sentencias SQL.

Ejecutar las sentencias SQL.


En caso necesario, procesar el conjunto de
registros resultante utilizando la clase ResultSet.
Para conseguir el objetivo de esta práctica,
basta con adaptar cierto código de la app Beer,
usada en clase.
Escribimos en un fichero JSP el
código necesario

Usamos el file algo.jsp de la app Beer



Un fichero .jsp puede ser invocado desde el servlet.
En nuestro caso, basta para comprobar que la app
accede a los datos de la BD en cuestión, usando la
URL: <nombre_maq>:8080/Beer/algo.jsp
¿Algo más para que el servlet pueda acceder?

Sí.

Nos ocupamos de CATALINA_HOME/conf
Ficheros server.xml y el desriptor
de despliegue de nuestra app

En la sección global de server.xml hay un
elemento Resource, con valores por defecto
para el datasource MySQL



Un datasource es un objeto Java usado para
acceder a BD relacionales mediante JDBC.
En web.xml es el elemento resource-ref, que
debemos atender.
Estudia en ambos ficheros que se ha escrito en
los elementos xml mencionados para nuestra
app Beer.
Probamos la app



Una vez adaptado el contenido del fichero
algo.jsp, ya que se trata de una base de datos
diferente.
Una vez tenidos en cuenta los cambios en
server.xml de tomcat y web.xml de la app.
Accedemos mediante:
<name_maq>:8080/Beer/algo.html