MPO: un generador de codigo JDBC
Cansado de tener que generar DAOs, una tarea larga, aburrida, propensa a errores y que siempre es igual me decidí a hacer una pequeña aplicación que lo hiciera por mí. Comenzó siendo simplemente un par de clases, luego le empecé a añadir cosillas y finalmente se ha convertido en una aplicación tremendamente útil, al menos para mí. Todavía se encuentra en fase "beta", pero ya es usable. Está publicado en javaHispano.net y es GPL. Si teneis algún problema para descomprimirlo lo podeis bajar de gimenete.net
Con MPO defines a través de una interfaz gráfica el modelo de objetos de tu aplicación y MPO te generará todo el código necesario para leer, eliminar, actualizar y listar los objetos de la base de datos.
El código generado por MPO se basa en patrones de diseño consolidados. MPO genera Data Transfer Objects (DTO) para representar cada entidad. Por cada entidad se genera también un Data Access Object (DAO) que implementa las funciones de la capa de persistencia: implementa los métodos de lectura, escritura, modificación, actualización y listado de datos.
Para acceder de forma sencilla a los DAOs se genera también una DAO Factory que además hará caché y se encargara de localizar un DataSource para obtener conexiones de la base de datos.
MPO también implementa otros tantos patrones: Page by page iterator, Lazy Load (carga perezosa), Is Dirty,...
Para realizar los listados he creado un sencillo lenguaje de consulta: GQL que se traduce a SQL al generar los DAOs. Se supone que en un futuro este lenguaje sólo se utilizará internamente por la aplicación para manejar las consultas a la base de datos.
Espero que lo probeis y comenteis qué os parece, qué mejoras le haríais, qué funcionalidad añadiríais, si os parece una herramienta útil, etc. Para una futura versión me gustaría añadir herencia a las entidades y otros posibles modos de persistencia diferentes a JDBC.
JODER¡ No tiene mala pinta, muchas veces la liamos utilizando hibernate, jdo, EJB y a veces un generador de codigo, codigo que cualquiera puede entender, es lo mejor para todos.
Desde luego la aplicación tiene buena pinta, felicidades.
Enviado por lasterra en diciembre 19, 2004 a las 11:08 PM GMT+01:00 #