Entradas

Mostrando las entradas con la etiqueta datasource

DataSource en Jakarta EE

Imagen
Para que nuestra aplicación Jakarta EE tenga conexión a la base de datos, debemos configurar un DataSource. No debemos usar la clase java.sql.DriverManager , es decir, la conexión nativa a JDBC, sino, debemos usar lo que ofrece el servidor Jakarta EE. Aquí mostraremos dos maneras: configurando el DataSource en la misma aplicación, y configurando en el Servidor Jakarta EE.

DataSources en una aplicación Java EE

Imagen
Todas las aplicaciones en Java EE va a necesitar - al menos - una conexión a una base de datos relacional. Según el Diseño de Patrones, la conexión a base de datos debe estar fuera de la aplicación que estamos construyendo. Según el estándar de Java EE, la conexión a la base de datos debe estar basada en un Pool de Conexiones y que esté administrado por el Contenedor Java EE. Esta conexión a la base de datos es a través de los DataSource del Contenedor Java EE. En este post veremos que existen tres maneras para implementar un DataSource, con sus ventajas y desventajas, dependiendo de lo que uno desea para su propia implementación.

Definición de DataSource en JavaEE6

Las aplicaciones Java EE que se han mostrado en este blog son más orientados para desplegarlos en GlassFish. Esto conlleva a que cada los DataSource sean de acuerdo para proveedor de cada Java EE. Así, mis ejemplos para GlassFish no funcionarían para JBoss, Geronimo, WebLogic, etc. Aún así, cuando se desarrolla la aplicación desde NetBeans, y cuando se genera el .war, este no asegura que en ese archivo no exista la configuración de DataSource para la aplicación para usar. Por ejemplo, para GlassFish desde NetBeans se crea el archivo sun-resources.xml , pero este archivo no existe dentro del .war. Por tanto, antes de desplegar el .war en el GlassFish, se necesita crear manualmente el Pool de Conexiones y el Recurso JDBC. Como siempre he dicho a los que he dictado el curso Java EE: el archivo sun-resources.xml es el archivo de recursos para el modo de desarrollo. Solo es usado desde NetBeans. Ahora bien ¿no debería haber un archivo único? Vamos: el JPA funciona para todos los motores...

Combo dependiente con JSP + Ajax

Imagen
Este es sin duda el tema más buscado para los que desarrollan formularios web: Combos dependientes en JSP usando AJAX Esto es clásico en los ejemplos de combos tipo departamento-provincia-distrito, cuando los elementos de un combo depende de la selección de otro. Pues ya, aquí está... ... y totalmente actualizado!! Aquí lo explicamos con JQuery y AngularJS, y de regalo.. con Bootstrap y Material Design

Aplicaciones web con base de datos en Tomcat 5.5 / 6.0, y Glassfish v2

Imagen
La mayoría de las veces, las aplicaciones web que desarrollamos deben estar conectada a una base de datos. Hemos aprendido que con Java podemos lograr una conexión a la base de datos usando estas dos líneas básicas: Class.forName("clase.driver.Driver"); Connection conn=DriverManager.getConnection("url:jdbc","usuario","pass"); Funciona correctamente cuando recién nos iniciamos en el mundo del JDBC. Y no está mal. Solo que es para aplicaciones con una sola conexión concurrente a la base de datos. Una aplicación web puede ser accedida por varios usuarios a la vez, y si nuestra aplicación web utiliza estas sentencias, podremos saturar la conexión a la base de datos. Se podría sobrecargar de conexiones y nuestra aplicación podría caerse. Le ponemos puros .close() por todos lados, y de cuando en cuando aparecerá el error: "La conexión se ha cerrado". Entonces, tendremos que pensar un sistema de semáforo para poder tomar y liberar la base de d...

Spring + iBatis + DataSource

Este es un extracto de un .xml para Spring Framework que crea un DataSource y lo pone al iBatis para implementar DAO. <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd"> <!-- obtengo el .properties con las variables que tiene los datos de la conexion --> <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="locations"> <value>classpath:net/andesconsulting/resources/database.properties</value> </property> </bean> <!-- creo el datasource --> <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method=...