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