2009-02-09 28 views
33

Solo estoy tratando de resolver mi problema Spring y averiguar cómo conecto una conexión Oracle en el archivo de configuración xml, y ahora descubro que necesito otro framework. - Hibernate, ¡esto es tan frustrante, ya que se siente como si me estuviera adentrando cada vez más en frameworks sin obtener lo que necesitaba!Spring vs Hibernate

Miré a Hibernate y parece hacer cosas similares a Spring, teniendo en cuenta que solo quiero hacer algunas inserciones SQL en Oracle.

Soy reacio y no tengo tiempo para aprender 2 frameworks. ¿Podría hacerlo con solo adoptar Hibernate para las cosas simples que necesito hacer?

+0

Siento tu dolor, sin embargo, Spring e Hibernate parecen hacer cosas muy diferentes. Estoy descubriendo que son bastante dependientes el uno del otro para ciertas tareas. –

+0

Me retracto de la declaración anterior, aparentemente la primavera también lo hace. –

+1

"I * solo * quiero hacer algunas inserciones SQL en Oracle". Últimas palabras famosas. –

Respuesta

56

... ¿podría salirse con la suya solo con la adopción de Hibernate para las cosas simples que tengo que hacer?

Hibernate es para ORM (mapeo objeto-relacional), es decir, hacer que sus objetos persistente a una RDBMS.

El muelle va más allá. Se puede usar también como AOP, Inyector de Dependencia, una Aplicación Web y ORM, entre otras cosas.

Así que si solo necesitas ORM, simplemente usa Hibernate. Llegará el momento en que necesites la primavera y la aprenderás en ese momento.

He aquí un punto de vista arquitectónico de primavera:

spring

Y esto es Hibernate:

hibernate

9

primavera y Hibernate son totalmente diferentes marcos para diferentes problemas. Spring es un gran marco con muchas características, Hibernate es un puente O/R.

Recomendaría utilizar JDBC antiguo simple en su caso ('solo algunas inserciones SQL en Oracle').

+0

Spring tiene ORM también. – OscarRyz

+3

Sí, lo único que Spring no tiene es su propia máquina virtual, que probablemente se agregará pronto ¿no? ;) –

+0

Lo curioso es que se dice que Spring es liviano, a pesar de que es un marco tan grande. Aparentemente, la ligereza es relativa, en el caso de Spring, más ligera que un servidor de aplicaciones Java EE completo. –

4

Spring e Hibernate tienen la intención de hacer dos cosas diferentes. Spring es ante todo un subsistema de contenedor y configuración de inversión de control, mientras que Hibernate es un motor de carga de datos y de carga diferida. Si no desea introducir un montón de cosas nuevas en su código, quédese con Spring y despliegue sus propias consultas o use iBatis para hacer un enlace de base de datos mucho más simple.

+2

No lo confundas con iBatis, en mi humilde opinión. Es realmente un buen marco, pero otro más para él. Sin aspectos negativos. –

7

Puede salirse con la suya usando solo spring y spring-JDBC integration. Dependiendo de la complejidad de sus necesidades de acceso a datos, puede ser más que suficiente. La primavera Object-relation mapping también vale la pena investigar si va a hacer un montón de acceso a datos.

Lo bueno de la primavera es que es un marco muy débilmente acoplado. De modo que puede leer los bits que usa y olvidarse del resto, incluso en el tiempo de ejecución.

1

Si todo lo que desea es insertar sql para Oracle, me quedaré con una biblioteca JDBC simple. Todo lo que necesitas es una conexión y tal vez un ConnectionPool (tal vez c3po). Hibernate y similares son demasiado grandes/demasiado complicados e IMO inferiores. Hibernate incorpora JDBC bajo el capó pero en todos los sentidos es inferior: más difícil de usar, no más rápido y las consultas que tiene que escribir o no son más fáciles.También es un testimonio de su inferioridad porque HQL también proporciona una ruta de derivación para que pueda ingresar consultas JDBC directamente. Proporcionan esto (sospecho) porque para cualquier consulta compleja simplemente no se puede construir bien en HQL.