Red de conocimiento informático - Material del sitio web - Cómo generar sql dinámico ibatis

Cómo generar sql dinámico ibatis

IBATIS: ¡La mayor ventaja es que puede controlar eficazmente la cantidad de SQL enviado y mejorar la eficiencia de ejecución de la capa de datos! Al igual que el IBATIS que utiliza actualmente Alibaba; requiere que los programadores escriban declaraciones SQL por sí mismos. No quiere estar completamente orientado a objetos y automatizado como Ibatis mediante el mapeo de tablas y objetos y SQL escrito a mano. declaraciones, puede lograr consultas más altas que hibernar, eficiencia, etc.

Dame un artículo para tu referencia:

1. Ventajas

Simple:

Fácil de aprender y usar, mediante documentación y Código fuente, puede tener una comprensión más completa de sus ideas de diseño y métodos de implementación.

Práctico:

Proporciona función de mapeo de datos, encapsula el acceso a datos subyacentes (como ado.net) y proporciona un marco DAO, que nos permite desarrollar y configurar más fácilmente la capa DAL. . Flexibilidad:

Básicamente, todo lo que podemos lograr sin utilizar un framework de acceso a datos se puede lograr con sql, e incluso más. Totalmente funcional:

Proporciona administración de conexiones, soporte de caché, soporte de subprocesos, administración de transacciones (distribuidas), mapeo de objetos relacionales a través de la configuración y otros problemas que deben resolverse en la capa de acceso a datos. Proporciona soporte DAO y encapsula ADO.NET, NHibernate y DataMapper en el marco DAO. Mejore la capacidad de mantenimiento del sistema:

Al proporcionar una capa DAL, la lógica empresarial y la lógica de acceso a datos se separan, lo que hace que el diseño del sistema sea más claro, más fácil de mantener y de realizar pruebas unitarias.

2

2. Desventajas

Retraso:

El .NET Framework 2.0 aún no es compatible explícitamente. La última versión se compila bien en 2.0, pero algunas pruebas unitarias fallan.

Inmaduro, menos práctica de ingeniería:

IbatisNet rara vez se utiliza en proyectos reales. Sólo teóricamente es posible.

Semi-ORM, menos soporte de herramientas:

Necesitamos escribir nuestro propio SQL y .NET aún no se ha descubierto en el negocio. No existe ninguna herramienta que pueda generar automáticamente clases de capa empresarial y archivos de configuración en .NET. Esto es diferente de NHibernate que generará SQL directamente para nuestra base de datos, y también existen algunas herramientas auxiliares. Entonces usar Ibatis es un poco más trabajo que usar NHibernate.

3. Viabilidad

No existe el mejor marco, sólo el más apropiado. La existencia es razonable y la existencia tiene una razón para existir. Pero para nosotros puede que no exista. Por lo tanto, lo más importante al elegir un marco es ver si es significativo para usted, qué tan significativo es y si puede brindarle más beneficios que otros marcos. No hay ventajas ni desventajas absolutas. Lo que importa es la discusión en qué circunstancias. Las anteriores son algunas de las ventajas y algunas desventajas de Ibatis. En teoría, estas ventajas demuestran que Albatross es adecuado para cualquier capa de persistencia de datos, pero puede que no sea la mejor opción. Las ventajas y desventajas anteriores se analizan a continuación desde dos aspectos. Simplicidad: A todos nos gusta la simplicidad. La simplicidad significa bajos costos de aprendizaje y baja posibilidad de errores durante el uso. Al mismo tiempo, las cosas simples generalmente no son lo suficientemente poderosas. Por el contrario, las cosas complejas son costosas de aprender, incómodas de usar y las capacidades técnicas del equipo no son sólidas, por lo que generalmente no se utilizarán. Práctico:

Resolver los problemas que deben resolverse en el proyecto. Esta es la naturaleza que debe tener cualquier marco de ingeniería práctico y uso de herramientas; de lo contrario, no será necesario utilizarlos en proyectos reales. Flexible: la flexibilidad tiene dos significados. Uno es que es simple y fácil de expandir, y el otro es que es poderoso y brinda una gran cantidad de opciones. Ibatis pertenece al primero e Hibernate pertenece al segundo. Ambos tienen ventajas y desventajas. Función: La función de Ibatis también es relativamente completa, más completa que el marco que desarrollamos nosotros mismos, pero en comparación con otros marcos, definitivamente hay algunos problemas sin solución. Mejore la capacidad de mantenimiento del sistema: el uso de Ibatis puede separar SQL y código y diseñar una capa de acceso a datos (DAL) clara. Pero la clave para saber si la arquitectura del proyecto es científica, razonable y mantenible no es Ibatis, porque es solo un marco de capa de datos.

Pero también debemos tener claro que para hacer un buen uso de Ibatis, necesitamos hacer un trabajo adicional. Por ejemplo, es mejor diseñar la interfaz DAO, colocar las entidades de la capa empresarial y las entidades de acceso en diferentes proyectos y mantener xml. archivos de configuración. Retraso: el equipo de Ibatis aún no ha mencionado la compatibilidad con .NET2.0. Muchas personas tienen problemas al usar Ibatis en .NET2.0. Entonces, si desea utilizar .NET2.0 para desarrollar, IBatis no es una buena opción y aún tendrá que esperar. Inmaduro: es difícil decir que las cosas de código abierto están maduras, pero generalmente son más maduras que los marcos que escribimos nosotros mismos. Ahora que podemos obtener su código fuente, la clave es si podemos dominarlo. Semi-ORM, poca compatibilidad con herramientas: esto está condenado al hecho de que Ibatis no puede mejorar esencialmente la eficiencia del desarrollo. Necesitamos escribir SQL, clases de entidad y archivos de configuración nosotros mismos. Pero esa también es su ventaja: no hace más por nosotros, por lo que tenemos más espacio para jugar. Es muy adecuado para sistemas que no tienen control total sobre la base de datos, y también es muy adecuado para el desarrollo de sistemas de consulta estadística que necesitan aprovechar las funciones avanzadas que proporciona la propia base de datos.

El uso de Ibatis requiere que usted escriba su propio sql y, dado que nuestro sql no es totalmente compatible con el estándar sql, no es tan portátil como el sql generado por NHibernate. Sin embargo, dado que es poco probable que cambiemos la base de datos, no nos importa si SQL cumple con el estándar, lo que nos permite minimizar el costo de migrar a un servidor diferente. Por otro lado, si bien NHibernate puede enmascarar muchas diferencias entre bases de datos, dificulta el aprovechamiento de algunas de las características avanzadas de la base de datos, como las capacidades de estadísticas analíticas de Oracle.

NHibernate no es adecuado para sistemas con modelos de bases de datos no estándar, restricciones imperfectas y sistemas que requieren una gran cantidad de consultas complejas. Al mismo tiempo, el costo de aprendizaje de NHibernate es alto y es. Es difícil dominar completamente NHibernate y los riesgos son altos. Puede que escribir su propio marco no sea mejor que Ibatis, es estable, potente y escalable. Y desarrollar su propio marco requiere mucho trabajo. Si utiliza DotNet y desea elegir un marco de capa de datos, y una parte considerable del sistema es SQL relativamente complejo, o el diseño de la base de datos no es razonable, los datos no están limpios y tiene requisitos estrictos de rendimiento y recursos, Ibatis es una mejor elección. Sus defectos no son fatales y existen algunas soluciones. En particular, al elegir utilizar Ibatis DataAccess como marco DAO, también podemos usar NHibernate, ADO.NET y DataMapper (los componentes principales de IbatisNet), que pueden minimizar el riesgo y hacer que todo el marco del sistema sea más razonable.

Además, el uso de Ibatis puede unificar el estilo de codificación y ahorrar costos de desarrollo. No desperdiciaremos energía en la generación de claves primarias de grupos de conexiones de paginación, etc., y podemos concentrarnos en escribir componentes comerciales.

Resumen:

Muchas veces tenemos que considerar de manera integral el desarrollo de nuestro propio marco y el uso de un marco de terceros, así como qué tipo de marco elegir. El criterio considerado es, por supuesto, el equilibrio entre el estado actual del proyecto y lo que queremos lograr.

Ibatis simplemente encapsula la capa de acceso a datos y nos permite completar parte del mapeo relacional de objetos. Pero el precio es que tenemos que escribir archivos de configuración xml e Hibernate requiere escribir muchos archivos sql. Hibernate genera clases de entidad y archivos de configuración básica directamente desde el esquema de la base de datos a través de herramientas y, en la mayoría de los casos, no requiere que escribamos SQL, lo que mejorará en gran medida la eficiencia del desarrollo. Pero estos también tienen muchas limitaciones, especialmente los mayores requisitos del entorno (diseño de bases de datos, diseño de objetos, colaboración en equipo, etc.). Personalmente, creo que Ibatis es más significativo para el proyecto porque es pequeño, flexible y extensible, encapsula la capa de acceso a datos (transacciones, cachés, excepciones, registros) y proporciona soporte para el marco DAO.

Usando Ibatis podemos realizar la separación de código y sql. Siempre que sea un problema que sql pueda resolver, Ibatis puede ayudarnos a resolverlo fácilmente y también puede hacer que nuestro proyecto sea menos dependiente de él. marco (porque Ibatis no es invasivo). Esto reducirá significativamente los riesgos del proyecto, reducirá el tiempo para resolver problemas complejos y facilitará el mantenimiento del proyecto.

Usar Ibatis para modificar, depurar, ampliar y mantener aplicaciones será fácil y natural. Al modificar, modificamos principalmente el objeto de entidad que representa el modelo, el sql en el archivo de configuración xml y/o el archivo de configuración ResultMap (muchas veces esto no es necesario). Al mismo tiempo, el SQL está separado del código, por lo que no tenemos que buscar el SQL que debe modificarse entre los métodos de adición de StringBuffer en el código. El sql en el archivo de configuración facilita la depuración y revisión del sql, así como la reutilización del sql en el futuro.

El uso de ciertos marcos a menudo ralentiza el desarrollo inicial. Debido a que tenemos que pagar el costo del aprendizaje, muchas veces usar el marco requiere escribir una gran cantidad de archivos de configuración, y el desarrollo será más lento si no está familiarizado con él, y el uso del marco a menudo aumenta la cantidad; del código del sistema, como los modelos Model1 y Model2, y la eficiencia del desarrollo aún debería ser más rápida que la del Modelo 1, y la arquitectura de cuatro capas debe tener más código que la arquitectura de dos capas. Pero para el desarrollo y mantenimiento intermedio o tardío, la eficiencia mejorará enormemente.

El uso de algunos marcos de desarrollo y herramientas de generación de código relativamente completos será más eficiente en las primeras etapas de desarrollo, pero a menudo ralentizará el progreso en las etapas posteriores y puede convertirse en una pesadilla de mantenimiento. Por ejemplo, Torque genera clases de entidad y su SQL correspondiente, lo que mejora enormemente la eficiencia, pero la carga de modificación también es mayor.

El enfoque de desarrollo ideal es utilizar marcos simples y herramientas de generación de código simples. Los marcos proporcionan los servicios básicos de un sistema y estandarizan el desarrollo. Por un lado, el marco proporciona soporte básico para un determinado aspecto del desarrollo, como la capa de acceso a datos, transacciones, registros, clases de utilidad, excepciones, etc. Por otro lado, también define el modelo de desarrollo y determina las líneas básicas del sistema. Al mismo tiempo, se genera parte del código de bajo nivel mediante herramientas simples de generación de código. Por ejemplo, las clases de entidad se generan a partir del esquema de la base de datos a través de esta herramienta. Una vez generadas estas clases, somos libres de modificarlas.

Hibernate es un marco ORM muy potente y completo, pero esta también es su ventaja y desventaja. La adopción de Hibernate3 en un sistema j2ee es una cuestión que debe evaluarse cuidadosamente.

Para que Hibernate funcione bien, el diseño de la base de datos debe ser excelente. Al mismo tiempo, para operaciones de datos complejas que requieren el uso de SQL, Hibernate3 admite el uso directo de SQL de forma más natural que Hibernate2, lo cual es aceptable.

Hibernate es relativamente complejo, potente y flexible. No es muy sencillo utilizar Hibernate. Por supuesto, el marco Spring proporciona encapsulación de Hibernate, lo que hace que su uso sea un poco más sencillo. Se puede decir que Ibatis es adecuado para cualquier sistema, pero puede que no sea la mejor opción. Sin embargo, las ideas aportadas por Ibatis merecen una seria consideración.