Buscar (Don't Edit)

lunes, 7 de enero de 2013

Conexión JDBC y el porqué no usar Código Duro

Una de las cosas que muchos olvidan a la hora de programar, es la de implementar buenas prácticas en su codificación, ya sea para que el programa sea fácilmente legible para otros programadores (comentarios, indentación, etc.), que sea escalable (a través de patrones de diseño y arquitecturas en capas) o simplemente contar con una documentación correcta de su aplicación, y todo ese tipo de cosas que cobran un valor realmente importante cuando se trabaja en equipo. No nos vayamos tan lejos, ni nos metamos en cosas muy técnicas, vamos a abarcar algo mucho más simple pero que, sin temor a equivocarme, es una de las prácticas mas molestas tanto para programadores como para usuarios finales, el código duro.

Código Duro o Hard Code
El código duro es muy conocido por ser un anti-patrón de diseño, y que consiste en introducir datos directamente en el código del programa, cuando éstos deberían ser tomados ya sea de un archivo de recursos, introducidos por el usuario de la aplicación o, como veremos en éste tutorial, a través de un archivo de propiedades. El código duro es una mala práctica que muchos programadores siguen usando y que debe ser olvidada forzosamente. Pensemos en una conexión a BD en donde los datos de conexión sean dados mediante código duro. Cada vez que cambie algún dato (usuario, contraseña, url, nombre de la base de datos, etc.) nuestro usuario tendría que entrar todas y cada una de las veces a modificar ésta información directamente en el código fuente, cuando es mucho más cómodo tener, por ejemplo, un simple archivo de texto plano donde pudiera modificarlo.

Conexión JDBC sin código duro
Para éste ejemplo reutilizaré el código de la conexión a BD que usamos en el tutorial sobre Singleton. Para empezar necesitamos un archivo .properties, donde irán todos nuestros datos de conexión, para crearlo damos click derecho sobre el paquete donde lo queramos crear y seleccionamos Nuevo -> Archivo de propiedades escribimos el nombre del archivo (en mi caso lo nombraré datosConexion) y le damos Terminar.

A continuación escribiremos nuestras variables, con los datos de la conexión (URL, usuario y password).


Lo que haré a continuación será crear la clase Propiedades, que obtendrá los datos del archivo y los guardará en una instancia de la clase Properties.

Creamos la instancia, y a través del método load cargamos los datos proporcionando la dirección del archivo .properties y validamos que no se encuentre vacío. Ahora vayamos a nuestra clase de conexión que utiliza el patrón Singleton y añadiremos lo siguiente:

Creamos una variable de tipo Properties y a través de ella instanciamos nuestra clase Propiedades que contiene nuestros datos de conexión, que obtenemos a través del método getProperty(key). Donde key (que es lo que va entre comillas) es el nombre que le dimos a nuestras variables en el archivo datosConexion.properties. Por último en el método que crea la Conexión le pasaremos las variables String  mediante la referencia this para que realice dicha conexión.
Y eso es todo. Por mi parte solo les recomendaría una única cosa: 


¡Saludos!






1 comentario: