¿Con que recomiendan integrar Hibernate?

Hola a todos, estoy empezando un nuevo proyecto y aprendiendo Frameworks. De lo unico seguro es que usare Hibernate pero quisiera saber con que otro Framework me recomiendan integrarlo (Spring, Struts, JSF, etc ). Quisiera alguno sencillo y practico ya que estoy aprendiendo a la par que estoy desarrollando y el tiempo es corto.

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de benek

Struts ya es algo atrasado a

Struts ya es algo atrasado a menos que te refieras a la versión 2, pero recomendaría mejor JSF ya que Spring no lo conozco a fondo.

También por aquí hay quienes apoyan mucho Tapestry, ojalá te puedan dar una recomendación acerca de este framework y de su integración con hibernate.

--
Java México

Imagen de ezamudio

Distintas opciones

Hibernate es para ORM o sea toda la parte de interacción con la base de datos. Vas a usarlo más directamente en tu capa de lógica de negocio. Para interfaz web pues yo recomiendo Tapestry, ya está la versión 5.0 estable y viene la 5.1 que ya está en beta. Tapestry ofrece algo de integración con Hibernate, siguiendo el patrón "open view in session"; concretamente, inyectas la sesión de Hibernate a la página y por lo tanto cuando cualquiera de los métodos de la página o componente se ejecuten, tienes garantizado que la sesión de Hibernate estará abierta y por lo tanto puedes hacer updates, commits, etc... aunque eso rompe un poco con el esquema de DAO's (o al menos te lo modifica porque entonces tienes que pasar la sesión como parámetro en los métodos del DAO).

Nada más no empieces a poner lógica por todos lados, trata de tener tu aplicación muy bien modularizada para que si a la mera hora no quieres usar Tapestry sino Struts o alguna otra cosa, no te afecte tanto el cambio de framework.

Además te recomiendo usar Spring para controlar todos tus componentes. Tapestry+Spring+Hibernate es una combinación bastante buena en mi experiencia. Y Tapestry también tiene soporte para Spring, en forma de anotaciones y un servicio para poder inyectar a tus páginas cualquier bean del application context que hayas definido para la aplicación.

¿Por dónde comenzar?

No nos dices si eres un jovenzuelo que está aprendiendo a programar o un viejito de 40 años con credencial del INAPAM y experiencia en Delphi y 4GL. Los frameworks le acomodan de diferente manera a la gente. Tampoco nos dices si el proyecto lo vas a desarrollar de manera individual, con otra persona, o en un equipo tipo las Chicas Superpoderosas, los Cuatro Fantásticos o los X-Men. Habría que tomar en cuenta los conocimientos de los demás si es que hay otros involucrados, porque si van a aprender al tiempo que programan, pues desde ya les envío mis condolencias.

Luego, dices querer algo sencillo, entonces ¿por qué vas a usar Hibernate? En fin, a lo mejor es el framework que ya conoces.

Si has programado en PHP y tienes experiencia parseando solicitudes HTTP, creo que lo más sencillo y práctico sería usar JSP 2.x y uno que otro servlet en Modelo 2. Si estás programando en una Mac, házte un favor y ¡usa WebObjects! Si sabes programar Swing, no pierdas el tiempo y usa Wicket. Si no caes en las categorías anteriores, AribaWeb es sencillo y práctico. Si quieres algo para tu curriculum, pues compra mucho café y usa Spring, Hibernate, JSF.

Sólo para cerrar: "Java" y "sencillo y práctico" en la misma oración ¡Ja! No hubiera nacido Rails.

Saludos

Javier Castañón

Hola Javier

Trabajo para una consultoria pero no usamos ningun framework en concreto. En la capa vista usamos JSP y Javascript para validar los formularios, en la capa control usamos los servlets y en la capa del modelo usamos clases java puras. Por mi cuenta aprendi un poco de Hibernate y ya realice algunas consultas e inserts. El proyecto lo quiero realizar despues del trabajo y es para titularme, de paso quiero aprender frameworks para introducirlos al trabajo y dar un aporte a la empresa para la cual trabajo. Bueno el proyecto no es tan complicado y lo voy hacer yo solo.

Un consejo bueno y uno malo

Buen consejo:
Para introducir a la empresa donde trabajas, te sugiero utilizar JSF para la parte web e integrar Spring y Hibernate. Revisa las ofertas en bolsas de trabajo y verás que lo que te menciono lo piden muchísimo. No te faltará trabajo en cualquier empresa, y vivirás con la tranquilidad que otorga saber que tus habilidades son demandadas, lo cual en esta época de crisis no es poca cosa. No inventes el hilo negro.

Mal consejo:
Al diablo con los frameworks populares: están orientados al uso de drones. Al menos diviértete con algo que te haga tener una perspectiva distinta de las cosas, ya tendrás muchos años para hacer sistemas aburridos con Java. Podrías aprender Smalltalk y hacer tu proyecto con . O métele a Erlang y tu proyecto web escolar sácalo con . O aprende Lisp y escribe algo, aunque no sea web con o . O podrías hacer algo con Scala y Lift Framework. Python y Django te permitirían hacer un proyecto en poco tiempo (no te metas con Zope, para ese caso mejor quédate en Java). No, ninguna consultora te pedirá que sepas lo anterior, pero el aprendizaje que adquieras te hará mejor programador. Y si acaso encuentras una empresa que valore esos lenguajes o herramientas, quédate a trabajar ahí. Serás feliz.

Saludos

Javier Castañón

¿Me podrias ayudar con un ejemplo?

Hola ezamudio, muchas gracias por contestar. Me podrias ayudar con un ejemplo sencillo ( de preferencia un proyecto hecho en NetBeans) como integrar Spring y Hibernate o JSF y Hibernate por favor. Si no se puede en Netbeans en cualquier otro IDE o los archivos como tal tambien estarian bien, gracias de antemano.

Imagen de ezamudio

No

No tengo uno a la mano, además de que un ejemplo "sencillo" de integración de 3 frameworks como éstos de los que hablamos, no existe, al menos no para algo útil, porque un "hola mundo" mínimo para ilustrar la integración de los 3 frameworks termina siendo algo ya medio extenso.

Busca en google, probablemente ya exista algún ejemplo con Tapestry 5. O en tapestry.apache.org puedes ver algo de ejemplos por separado (integrar Tapestry+Spring y por otro lado integrar Tapestry+Hibernate, porque finalmente no tienen nada que ver uno con otro).

Imagen de Nopalin

que dicen de grails?

Alguna vez leí que grails tambien era fácil de utilizar, aunque lo que no me gustó fue habia que aprender otro lenguaje para programar en java jeje.

yo tengo un ejemplo utilizando spring mvc pero con jdbc template, déjame ver si puedo modificarlo y lo mando.

sobres

ok

Hola Nopalin, gracias por contestar y si cuando tengas el manual de Spring usando JDBC me lo podrias mandar a: javadicto@gmail.com
Bueno gracias de antemano.

Échenle un vistazo a esto

Seguir ciertas reglas de convivencia muestra aprecio y respeto por el tiempo de los demás.

Sencillo en dos sentidos

Es fácil de usar en más de un sentido. Por un lado, su arquitectura de classloaders desechables carga automáticamente los cambios en sus componentes sin necesidad de hacer que el contenedor de servlets recargue el contexto completo (aplican restricciones). Por otro lado el compilador de Groovy es mucho menos sangrón que el de Java, y su sintaxis es muy parecida. Para mi Groovy es como un "Java light" (ya no puedo llamarlo "Java - Script"). Por eso cuando dí el mal consejo, no lo incluí en la lista de frameworks/lenguajes interesantes para aprender para un desarrollador Java, IMHO son muy parecidos.

Saludos

Javier Castañón

ok, ya entendi.

Hola Javier, entiendo muy bien el mensaje que me estas tratando de dar. No formule muy bien mi pregunta por tal motivo no consegui respuestas satisfactorias. Tratare de investigar antes por mi cuenta, hare preguntas mas inteligentes para que me den respuestas inteligentes. Soy recien egeresado de la universidad, llevo un año en esto del desarollo en Java y no se me da muy bien el ingles, por tal motivo he tenido algunos problemas, por que la mayoria de la documentacion completa y actualizada se encuentra en ingles. Me acerco a ustedes y sigo esta comunidad una; por que los considero personas capaces y con experiencia, dos; por que son mexicanos y tres por que hablan mi idioma. Agradezco todas sus respuestas y espero en un tiempo no muy lejano aportar algo a la comunidad y ayudar a todos los iniciados en este maravilloso lenguaje, si como mexicanos todos nos apoyamos seremos un mejor pais y en general apoyaremos la filosofia del open source.

:-)

Siempre será bueno que tengas claros los fundamentos de JDBC:

Es muy agradable trabajar con JDBC a través de Spring:

Imagen de ezamudio

Spring JDBC

De eso sí tengo un ejemplito en mi blog: