martes, marzo 27, 2007

Acceso a datos con Java

Llevo unos 10 años programando principalmente en Java. A excepción de un año que tuve que hacer mis pinitos con Visual Basic 6. Siempre me ha gustado mucho más Java, me siento más cómodo, no hay ningún otro motivo.

Desde que conocí el lado oscuro, echo de menos la facilidad con la que puedes acceder a fuentes externas como son las bases de datos. En Java no tenemos nada parecido al ADO.NET, y no estoy hablando de calidad, sino de funcionalidad, homogeneidad y facilidad de uso.

Para la persistencia en Java podemos utilizar frameworks como iBatis o el megaarchiconocido Hibernate. Pero muchas veces es demasiado complicado configurar estas magníficas herramientas o el fin para el que lo queremos no merece tanto trabajo o recursos.

Yo propongo esta solución. Consta únicamente de una interfaz y una clase (factory), además de las clases propias que controlan el tipo de conexión que se requiere. No es mio, sino que lo encontré sin querer, pero que desde que lo vi lo llevo siempre en mi pendrive. Siento no recordar el sitio de donde lo saqué para poder hacer la correspondiente referencia.

Los fuentes los podeis descargar de aquí.

Veamos. Lo primero es la interfaz Dao.java. Sólamente tiene el método getConnection. Esta interface será la que tengan que implementar nuestras clases para poder recuperar la conexión.

Estas clases yo las llamo DataAccessXXX, donde XXX normalmente es DIRECT o POOL... y alguna vez LDAP. En ella está la lógica para la obtención de la conexión.

Y por último, pero no menos importante por ello, tenemos la clase FactoryDao. Es una singelton que nos proporciona una instancia de nuesta clase DataAccessXXX a través de reflexión. La clase que debe instanciar se indica a través de los parámetros de configuración del fichero config.properties. Tanto esta clase como la DataAccessXXX utilizan el fichero de propiedades de donde recuperan el valor de los parámetros que necesitan.

La clase Main.java que acompaña a las anteriores muestra cómo utilizar todo este tingladillo.

Estoy seguro de que existen formas más bonitas de hacerlo, pero a mi esta forma me resulta limpia y clara, además de muy fácil de usar y portar.

Espero que os guste.

P.D.
Gracias a mi compañero de curro Miguel Jimenez y su blog por el alojamiento de los fuentes.

No hay comentarios: