11 Ventajas de usar Hibernate
Hibernate resuelve bien el problema de rendimiento utilizando el mecanismo de almacenamiento en caché de terceros y el grupo de conexiones de bases de datos, pero esto no es suficiente.
Después de estudiar ibatis durante un tiempo, creo que la hibernación tiene algunas ventajas que ibatis no puede reemplazar.
Los desarrolladores saben que la hibernación nos permite operar la base de datos de forma OO. hibernate tiene algunas ventajas que no pueden ser reemplazadas por ibatis
Todos los desarrolladores saben que hibernate nos permite operar la base de datos de una manera oo, lo que nos muestra el poder de hibernate y la conveniencia de operar datos, pero con la Además, Gavin King dijo que la mayor ventaja de hibernar es el mecanismo de almacenamiento en caché, no el método oo, sino el método que utiliza hibernación para almacenar en caché los datos. El mecanismo de almacenamiento en caché de Hibernate no es más que una sesión de caché de primer nivel, una sesión de caché de segundo nivelFactory y un caché de terceros (como ehcache), lo que significa que la función más poderosa de hibernate es su caché. Solo entendiendo esto podemos entenderlo realmente. hibernar.
Mantenibilidad ibatis predica la escritura de sentencias SQL y su colocación en archivos xml separados, un enfoque que ha conquistado a muchos desarrolladores. En pocas palabras, es fácil de mantener, pero la hibernación tiene la misma funcionalidad y es más poderosa que ibatis. La consulta con nombre/parámetro con nombre de Hibernate coloca la declaración SQL en un archivo xml separado, lo que aún permite a las personas operar datos de forma orientada a objetos. Este también es el favorito de muchos desarrolladores que siguen el método oo. Después de escribir el código de forma relacional, cambié de opinión y escribí estas declaraciones SQL de forma relacional. Pero hibernate no solo hace esto, sino que también lo hace en forma de consultas SQL nativas, lo cual es muy adecuado para las declaraciones SQL favoritas, y también coloca declaraciones SQL en el archivo de configuración, al igual que ibatis.
Rendimiento Creo firmemente que el rendimiento de hibernación no es un problema. Piense en cuántos proyectos grandes y medianos usan hibernación y no dudará de que el rendimiento de hibernación es suficiente para usarse en lugares donde hay cuellos de botella en el rendimiento. son realmente grandes. Hibernate integrado con Spring se puede obtener utilizando jdbc integrado con Spring o escribiendo directamente procedimientos almacenados donde existen cuellos de botella de rendimiento reales. Sin embargo, primero debe determinar dónde está realmente el cuello de botella de rendimiento. Creo que no deberíamos abordar los llamados problemas de rendimiento. Por supuesto, muchos proyectos han sido bloqueados. Los llamados problemas de rendimiento han bloqueado a muchas personas
Creo que el rendimiento solo es bueno o malo debido a la cantidad de declaraciones SQL enviadas. Un buen rendimiento significa la cantidad de SQL. Las declaraciones enviadas son pequeñas y el rendimiento La diferencia es que la cantidad de declaraciones SQL enviadas es grande y hay muchas personas que envían una gran cantidad de declaraciones SQL al mismo lugar. Un rendimiento deficiente significa enviar una gran cantidad de declaraciones SQL. Hibernate hace un excelente trabajo resolviendo problemas de rendimiento
A través de su mecanismo de almacenamiento en caché, el uso de cachés de terceros y grupos de conexiones de bases de datos, puede resolver bien los problemas de rendimiento.
Pero esto no es suficiente. Hibernate proporciona a los desarrolladores suficiente libertad para controlar ellos mismos los problemas de rendimiento.
Creo que hay varias formas en que los desarrolladores pueden controlar los problemas de rendimiento.
a ¿Deberíamos usar siempre marcadores de posición jdbc en las cadenas de consulta o usar parámetros con nombre? O utilice parámetros con nombre en las consultas en lugar de valores no constantes.
b La actualización afectará el rendimiento. > c Estrategia en cascada Configure correctamente la estrategia en cascada para una relación de uno a muchos. Piense si necesita realizar operaciones en cascada en el objeto A con operaciones en el objeto B.
Por ejemplo, en una relación padre-hijo, elimine un objeto en una relación de uno a muchos; o en una relación padre-hijo, elimine un objeto en una relación de uno a muchos o en una relación de uno a muchos; relación, eliminar un objeto en una relación de uno a muchos. Por ejemplo, en una relación padre-hijo de uno a muchos, si elimina un objeto principal, debe eliminar varios objetos secundarios en cascada. Por lo tanto, puede establecer cascada = eliminar en el objeto principal, de modo que cuando el objeto principal. Se elimina el objeto, los objetos secundarios se eliminarán automáticamente, pero las operaciones en el objeto secundario no afectarán al objeto principal. Si se configura correctamente, la conexión en cascada de otros valores de propiedad también puede mejorar el rendimiento
d Estrategia diferida Una estrategia de carga diferida configurada correctamente también puede mejorar el rendimiento en relaciones de uno a muchos. En una relación de uno a muchos o de muchos a muchos, siempre debe retrasar la carga de las muchas partes en cascada en la memoria. Si lazy=true, la instrucción SQL se envía primero, se carga en la memoria y luego se carga la cascada si es necesario. Si lazy = false, se cargarán tanto él como la cascada. El rendimiento de la matriz de mapas de la lista de conjuntos debe configurarse correctamente
f Uso correcto de la caché de terceros En el caso de operaciones de lectura frecuentes y operaciones de escritura poco frecuentes, el uso de la caché de terceros puede mejorar significativamente el rendimiento. Con el lanzamiento de nuevas versiones de Hibernate y el desarrollo de la tecnología, creo que el rendimiento de Hibernate mejorará cada vez más. Todo el rendimiento no es una razón para no usar hibernación
hibernación no solo existe como un marco de persistencia, sino que tiene muchas otras cosas además de las operaciones de persistencia de la capa dao
Anotaciones
Ahora que las anotaciones se han generalizado, hibernate ha respondido rápidamente y ha hecho que los descriptores de implementación xml sean opcionales. Las anotaciones de Hibernate son solo @Lobs para campos grandes.
La búsqueda de Hibernate es un contenedor liviano para Lucene.
Los validadores de Hibernación se consideran la forma más razonable de adjuntar estrategias de validación directamente al modelo de dominio en cada capa. Elimina la necesidad de validación basada en xml en marcos web y elimina la necesidad de muchas comprobaciones no nulas/nulas en su código. Es necesario utilizar hibenrnate para la capa de implementación. Creo que la gestión de procesos de negocio es extremadamente importante hoy en día con el rápido desarrollo de SOA. Si desea implementar proyectos SOA, la gestión de procesos de negocio es inevitable y necesaria. , porque SOA es la integración de la tecnología empresarial y de TI. La integración de la gestión de procesos de negocio y la infraestructura de TI es la primera prioridad en SOA. Esto requiere las tecnologías correspondientes para implementar la gestión de procesos de negocios en el campo de código abierto. Creo que jbpm será la primera opción, por lo que para implementar proyectos SOA en el futuro, se debe utilizar hibernate para implementar la gestión de procesos de negocios SOA. p> Como todos sabemos, hibernate será ejb Los beans de entidad de la época pasarán a la historia, y ejb en el estándar jpa es solo un subconjunto del estándar de hibernación, pero esto no es lo mismo. Hibernate es solo un subconjunto de hibernate. El poder de las solicitudes de especificación jsr es enorme. Sin varias solicitudes de especificación jsr, habría varios marcos de aplicaciones que son solo los implementadores de las solicitudes de especificación jsr. La dirección de desarrollo que lidera la capa de persistencia o el marco m también es operar la base de datos de manera orientada a objetos. Opere la base de datos de forma orientada a objetos, en lugar de escribir declaraciones SQL. Las especificaciones y estándares están todos basados en ORM, sin escribir declaraciones SQL. Las especificaciones y estándares están todos basados en ORM, completamente basados en ORM, sin escribir declaraciones SQL. . ¿Tiene alguna razón para no seguirlo?
Spring+hibernate+paradigm+parámetros variables es una combinación muy poderosa que se puede utilizar para operaciones basura comunes. Ya no necesita reescribir todo el molesto código de capa de administrador y tipo dao, simplemente lo escribe una vez y habrá terminado con todos los conceptos básicos.
Jboss hibernate es un proyecto de jboss.
Todos los proyectos de jboss usan hibernación en la capa de persistencia. Ya sabes, la mayoría de los expertos del equipo de especificación jsr provienen de jboss y, hasta cierto punto, jboo lidera la dirección de Java. Puedes seguir jboss sin desviarte de la dirección de Java.
Gavin King es uno de mis ídolos más admirados. No solo inventó la poderosa hibernación, sino que también propuso el marco de aplicación web igualmente poderoso y elegante. También es miembro del grupo de expertos ejb. El líder de las solicitudes de especificaciones jpa y uno de los líderes más vocales y autorizados de java. Ahora, él está liderando el desarrollo jsr de Web Bean (especificación de Web Bean), y los gigantes del software mundial como IBM, Oracle, Bea y Apache están respondiendo a esto. Es realmente asombroso imaginar cómo se ve Web Bean. Ya sabes, en Web Beans, puedes imaginar que está completamente acoplado de manera flexible y fuertemente tipado, y que todos los componentes de la aplicación viven en un contexto de aplicación único y cooperan entre sí. De esta manera, no habrá más contexto, no más ActionContext para struts, no más ApplicationContext para Spring, no más sesión para hibernación, no más contexto de persistencia, no más contexto de transacción y no más contexto de seguridad, todos los componentes vivirán. en una gran familia y todos serán felices. World Harmony
osgi Creo que la tecnología que más vale la pena aprender ahora es usar osgi para lograr un verdadero desarrollo de múltiples módulos. Cambie el método de desarrollo tradicional y ahora tenga los puntales del módulo dinámico de resorte (osgi) de osgi. El soporte para osgi, eclipse lo desarrolla actualmente IBM basado en osgi. Actualmente, eclipse se desarrolla en base a osgi, todos los productos websphere v bea de IBM se refactorizan en base a osgi y el servidor de aplicaciones de Spring también se basa en osgi. No es de extrañar que OSJ sea tan bien recibido, ya que tiene potentes funciones que cambian la forma tradicional de desarrollo de software. Osgi adopta un patrón de diseño de árbol para dividir un proyecto en varios módulos, y cada módulo se implementa y ejecuta por separado. En otras palabras, un proyecto se divide en varios complementos y cada complemento se desarrolla y reutiliza de forma independiente para implementarlo completamente. Conectar y usar. Esto es muy interesante porque si el desarrollo de software de una empresa se basa en osgi, tendrá muchos paquetes osgi reutilizados y la empresa acumulará muchos activos intangibles. El desarrollo de software será cada vez más rápido e ibatis aún no es compatible con osgi.
La comunidad de hibernación está en auge, mientras que ibatis está relativamente tranquila.
En definitiva, hibernar tiene muchas ventajas que desconocemos. Hibernate e ibatis son como el contraste entre una niña grande y una niña pequeña. La niña grande tiene todas las ventajas de la niña pequeña.
Lo que hace Hibernate no es sólo persistencia a nivel de pista, lo que hace ibatis también es persistencia a nivel de pista.
Elegir Hibernate equivale a elegir al rey de Orm y elegir una experiencia laboral más completa.
Elija hibernar, elija el rey de ORM, elija una experiencia laboral más completa, elija una forma de trabajar más eficiente, elija más ganancias, elija el rey de Gavin, siga al líder, elija jboss, siga el código abierto Siga la tendencia, no se desvíe de la dirección de desarrollo de java lishixinzhi/Article/program/Java/ky/201311/28357
Hibernate hace más que solo persistencia a nivel de pista.