21 de septiembre de 2009

Hibernate - Parte 7: HQL Primera Parte

Hibernate proporciona un lenguaje de consultas muy poderoso llamado "Hibernate Query Language" (HQL).

HQL es muy parecido al SQL estándar, con la diferencia de que es completamente orientado a objetos (usamos nombres de clases y sus atributos en lugar de nombres de tablas y columnas), por lo que podemos usar cosas como herencia, polimorfismo y asociaciones.

Nosotros escribimos las consultas en HQL y Hibernate se encarga de convertirlas al SQL usado por la base de datos con la que estemos trabajando y ejecutarla para realizar la operación indicada.

En este tutorial veremos cómo usar este lenguaje para hacer algunas consultas típicas dentro de nuestras aplicaciones para poder recuperar objetos simples, y arboles de objetos.

18 de septiembre de 2009

Día del programados

Feliciades a todos los programadores que visitan este blog, aunque un poco tarde ^-^!.

El día doscientos cincuenta y seis de cada año, o en binario el 1111111, se celebra el "Día del Programador". Esta año cayó justamente el 13 de Septiembre

La celebreación fué propuesta por Valentine Balt, un empleado de Parallel Tecnologies, a prinicpios del 2002 el intentó hacer llegar una petición firmada al gobierno de de Rusia para que el día se reconozca como el dia oficial del Programador.

El día 24 de julio de 2009 el ministro de Comunicación e Informatización de Rusia, presentó un borrador de una decreto para fijar el día de Programador, así que el día 11 de septiembre de 2009, el presidente de Rusia Dmitry Medvedev firmó el decreto y el día del prorgamador quedó oficializado (al menos en Rusia).

Esta festividad tiene por motivo reconocer esfuerzo de todos los que nos dedicamos a esta noble profesión.

Las tradiciones de este día incluyen jugar viejos juegos de computadora, hacer pequeños programas inútiles, poner un nick alusivo en los distintos medios de chat, enviar mensajes de texto y emails con felicitaciones a nuestros conocidos que se desarrollen en esta área, comportarse de maneras tontas, editar la Wikipedia, jugar con computadoras viejas, etc.

El día número 256 resulta el 13 de septiembre, excepto en los años bisiestos, en los que cae el 12.

Así que feliciades a todos los programadores.

24 de agosto de 2009

Hibernate - Parte 6: Relaciones / Muchos a Muchos

En ocasiones necesitamos relacionar muchas entidades de un tipo con muchas entidades de otro tipo. Este tipo de relaciones es muy común cuando trabajamos con bases de datos relacionales, por eso es importante saber cómo trabajar con ellas.

En este último tutorial de la serie veremos cómo crear los últimos dos tipos de relaciones el framework de Hibernate: relaciones muchos a muchos unidireccionales y bidireccionales.

2 de agosto de 2009

Hibernate - Parte 5: Relaciones / Muchos a Uno

Ya hemos visto, en los tutoriales anteriores, cómo generar 4 de los 7 tipos de relaciones que podemos crear con Hibernate.

En esta ocasión veremos cómo crear relaciones uno a muchos unidireccionales (ya que, como dije en el tercer tutorial, las relaciones uno a muchos bidireccionales son iguales a las relaciones muchos a uno bidireccionales ^-^).

31 de julio de 2009

He regresado ^-^ y traigo mejoras

Este último mes estuve trabajando en un proyecto un poco pesado, además de estar dando un curso en una empresa. Por esa razón descuidé un poco el blog, así como las preguntas que hacían en los cometarios de cada una de las entradas.

Pero afortunadamente ambos parece que terminaron bien, así que trataré de regresar al ritmo normal de posteo de tutoriales y poder responder todas las dudas que comenten. También aprovecharé para hacer unos pequeños cambios en cuanto al estilo de los tutoriales, esperando que todo quede mejor.

Entre otras cosas, subiré los archivos de los ejemplos para que puedan probarlos ustedes mismos. Comenzaré subiendo los ejemplos de los tutoriales nuevos que vaya creando y poco a poco iré subiendo los de los que ya están en el blog.

En unos días estaré continuando con los tutoriales de Hibernate.

Además, algunos de los tutoriales están comenzando a cargar bastante lento, esto es por el elevado número de comentarios que se encuentran en algunos, así que implementaré una política de 30 comentarios. Una vez que un tutorial alcance los 30 comentarios cerraré los mismos. Los comentarios que ya estaban seguirán ahí, pero ya no se podrán colocar más. Pero no se preocupen, si tienen alguna duda pueden enviarla directamente a este correo:

programadorjavablog@gmail.com

Y con todo gusto los ayudaré.

Bien, creo que por el momento es todo.

Saludos y muchas gracias.

28 de junio de 2009

Acepto Donaciones

Debido a problemas económicos me he visto en la necesidad de agregar en el blog un botón para aceptar donaciones vía paypal .

Las donaciones son en dolares debido a la gran cantidad de visitantes extranjeros que recibe el sitio.

Si este blog te ha servidor de algo o de alguna forma ha podido ayudarte y tienes la posibilidad de donar por favor, no lo dudes ^-^.

Saludos

27 de junio de 2009

Hibernate - Parte 4: Relaciones / Uno a muchos

En el tutorial anterior dijimos que en las bases de datos existen 7 tipos de relaciones, y vimos cómo crear relaciones uno a uno, tanto unidireccionales com bidireccionales, con Hibernate usando archivos de mapeo y anotaciones (en ejemplos separados). Cubriendo con eso 2 de los 7 tipos.

Ahora veremos como trabajar con relaciones Uno a Muchos, unidireccionales y bidireccionales. Con lo que cubriremos otros dos tipos.

4 de junio de 2009

HIbernate - Parte 3: Relaciones / Uno a uno

En los tutoriales anteriores vimos cómo persistir objetos simples en la base de datos usando Hibernate, tanto con archivos de mapeo XML como con anotaciones. Gracias a eso no tuvimos que escribir ni una sola línea de código SQL.

Sin embargo solo en raras ocasiones deberemos guardar un objeto simple como lo vimos. Por lo regular guardamos grafos de objetos u objetos relacionados con otros objetos. En estos casos querremos que los objetos se guarden, actualicen, o eliminen en el momento que lo haga nuestro objeto principal (o tal vez no ^-^!).

En este tutorial veremos cómo manejar los objetos relacionados (con mapeos y con XML).

13 de mayo de 2009

HIbernate - Parte 2: Persistiendo Objetos Simples usando Anotaciones (metadatos)

En el tutorial anterior vimos como crear una pequeña aplicación con Hibernate usando mapeos en archivos XML. Aunque esto es bastante útil (en algunas situaciones) puede ser bastante engorroso, especialmente en aplicaciones muy grandes.

Afortunadamente existe otra forma de realizar estos mapeos, y es usando anotaciones o metadatos, los cuales se agregan directamente al código fuente y, por lo tanto, es más fácil estar conscientes de estos datos de mapeos al estar editando el código fuente. Además usan muchos valores por default, ya no será necesario que escribamos toda la información para los mapeos.

En esta ocasión mostraré como realizar el mismo ejemplo que en el tutorial anterior, pero haciendo uso de anotaciones en lugar de archivos de mapeo XML.

1 de mayo de 2009

HIbernate - Parte 1: Persistiendo Objetos Simples usando Mapeos en XML

En la mayoría de las aplicaciones empresariales, si no es que en todas, una parte muy importante es el almacenamiento de datos de forma que estos datos puedan sobrevivir más allá del tiempo que nuestra aplicación está encendida (ya sea en una aplicación standalone o en una aplicación web).

El almacén de datos más común son las bases de datos relacionales. La naturaleza de estas bases hace que no sea tan fácil usarlas en el almacenamiento de datos en aplicaciones orientadas a objetos (por las diferencias entre el modelo de datos de objetos y el modelo de datos relacionales), ya que para guardar un objeto debemos extraer cada una de sus propiedades que queremos persistir y armar con ellos una sentencia INSERT de SQL. De la misma forma, cuando queremos recuperar los datos de un objeto, debemos usar una sentencia SELECT de SQL y después extraer el valor de cada una de las columnas recuperadas y llenar así nuestro objeto.

Esto puede no parecer un problema en aplicaciones pequeñas, pero cuando comenzamos a tener muchos objetos que debemos guardar se vuelve algo muy pesado y engorroso, además de que consume mucho de nuestro tiempo que podríamos dedicar a mejorar la lógica de la aplicación, o a realizar pruebas de la misma.