Código fuente del modelado de escaneo
-
Actualmente existen muchas soluciones de capa de persistencia en aplicaciones J2EE, entre las cuales Torque, que recientemente se escindió de Apache Turbine, es una excelente solución ORM (Object Relational Mapping). .
Soluciones convencionales de capa de persistencia
Con cada vez más aplicaciones basadas en J2EE, hay cada vez más soluciones de capa de persistencia. Actualmente, las principales soluciones son las siguientes:
◆Escriba su propia solución basada en JDBC API;
◆Utilice herramientas ObjectRational Mapping (ORM) o bases de datos orientadas a objetos (ODBMS);
◆ p>
◆J2EE/Entity Bean CMP (Persistencia gestionada por contenedor);
◆JDO.
JDBC
En muchos casos, especialmente para proyectos que no utilizan una buena solución de capa de persistencia, los desarrolladores deben escribir manualmente declaraciones SQL ellos mismos y al mismo tiempo considerar cuestiones como el procesamiento de transacciones. Como resultado, las declaraciones SQL están dispersas en el código y la capacidad de mantenimiento es deficiente. Al mismo tiempo, dado que cada proyecto debe reescribir el código relacionado con la persistencia, la reutilización del código es deficiente. Además, los desarrolladores deben estar muy familiarizados con la sintaxis SQL; de lo contrario, será difícil depurarlo.
Con las soluciones JDBC, los datos deben almacenarse en una base de datos relacional.
ORM u ODBMS
Para liberar a los desarrolladores de las declaraciones SQL, se han producido muchas herramientas ORM. Estas herramientas son relativamente simples y brindan soporte API.
Debido a que existen muchas herramientas ORM, sus estándares técnicos son diferentes y no existe una interfaz unificada. Por lo tanto, si bien brinda comodidad a los desarrolladores, también agrega ciertas restricciones. La tecnología ORM es relativamente madura y existen muchos productos.
ODBMS se desarrolló en los últimos años, aún no está muy maduro y no se ha utilizado ampliamente. Actualmente, muchos proveedores de ODBMS están prestando atención e implementando el estándar JDO. Puede que se vuelva común en un futuro próximo.
Con una solución ORM u ODBMS, los datos también deben almacenarse en una base de datos relacional u orientada a objetos.
EJB CMP
En la especificación J2EE se definen dos soluciones de persistencia para EJB: BMP y CMP. CMP no requiere agregar declaraciones SQL al código.
En la actualidad, el pulido mecánico químico EJB se ha utilizado ampliamente en J2EE. Lo que es más interesante es que con el desarrollo de la especificación EJB, CMP también incluye algunas relaciones de alto nivel. Sin embargo, el uso de CMP es complejo y difícil de dominar para muchos desarrolladores. Además, EJB no es adecuado para su uso en sistemas en todas las circunstancias.
Además de las bases de datos relacionales, EJB también proporciona más soporte de almacenamiento.
JDO
Actualmente, existen dos tipos de implementaciones de JDO, uno es el JDO de Sun y el otro es el JDO de Castor. Son incompatibles.
Sun JDO es una especificación y una implementación de referencia proporcionada por Sun Java Community Process. Aunque JDO aún no está maduro, tiene grandes perspectivas de desarrollo y llena un vacío importante en el campo de la programación de bases de datos. Para los desarrolladores de Java, JDO proporciona el primer enfoque estandarizado y totalmente orientado a objetos para la persistencia de objetos. En comparación con otras tecnologías en este campo, la ventaja de JDO es que es muy simple de usar y tiene un daño mínimo al código fuente original de Java. Al mismo tiempo, Sun JDO es transparente para los tipos de almacenamiento de datos.
Castor JDO es un proyecto de código abierto desarrollado en 1999. Entre los proyectos JDO de código abierto, proporciona las funciones más potentes. Aunque Castor JDO se desarrolló antes, a medida que Sun JDO madura, sus ventajas son cada vez menores. Al mismo tiempo, Castor JDO solo brinda soporte para RDMS.
Se puede ver en el análisis anterior que, dado que la mayoría de los datos del sistema de aplicaciones se almacenan actualmente en RDMS y JDO aún no es perfecto, el proyecto debería utilizar herramientas ORM maduras.
Torque
Torque es una herramienta ORM que originalmente formaba parte del proyecto Apache Jakarta Turbine. Ahora se ha separado de Turbo y se puede utilizar de forma independiente. Su versión actual es la 3.0.
Las características principales de Torque
Torque se compone principalmente de dos partes: una parte es el generador, que puede generar todos los recursos de base de datos requeridos por la aplicación, incluidos archivos SQL y Java. Además, Torque también proporciona Cree un entorno de ejecución para ejecutar las clases generadas. A continuación se analiza principalmente el generador de par.
1. Tres archivos principales
Para utilizar el generador Torque, se deben configurar los siguientes tres archivos (la ruta de instalación de Torque es $Torque_home):
◆ $Torque_home/build.properties almacena las propiedades del sistema de base de datos, que incluyen principalmente el nombre del proyecto, el tipo de base de datos, la URL del enlace de la base de datos, el controlador, el nombre de usuario, la contraseña y el nombre de host. Torque utiliza las propiedades de este archivo para establecer una conexión con el sistema de base de datos.
◆$ torque _ home/schema/project-schema.xml, id-table-schema.xml donde project-schema.XML almacena información de la estructura de la tabla y id-table-schema.xml es generado por; Llamada de servicio de Torque IDBroker.
◆$Torque _ home/Torque properties almacena los valores de propiedad utilizados por el código del modelo de objetos generado por Torque al ejecutar la aplicación. Este archivo no es necesario al generar recursos del sistema de base de datos.
2. Tareas principales
Utilizando el par proporcionado por el generador, se pueden completar las siguientes tareas principales:
◆ Análisis SQL $ torque _ home/schema /*. XML y genere el correspondiente $torque_home/src/SQL/*. Archivo SQL;
◆ doc analiza $torque_home/schema/*. XML, generando el correspondiente $torque_home/src/SQL/*. Archivo HTML y describe la estructura de la base de datos;
◆ create-db genera scripts para generar sistemas de bases de datos en diferentes plataformas
◆ insert-sql ejecuta $ torque _ home/schema/*- esquema.SQL a la base de datos especificada;
◆ sql2xml analiza el archivo $Torque_home/schema/schema.sql y genera el archivo de base de datos correspondiente a Torque $Torque_home/schema/schema XML;
.◆ id-table-init-sql genera el archivo de script de inicialización de la tabla de ID basado en el archivo $torque_home/schema/id-table-schema XML;
Las tareas anteriores requieren compatibilidad con ANT. , el comando en ejecución es $torque_home/ANT-fbuild-torque XML $taskname.
3. Peers
Peer es la herramienta ORM utilizada por Torque. Es más bajo que otras herramientas (como Castor, Osage, etc.). Los desarrolladores necesitan escribir algo de código a mano, pero esto aumenta la flexibilidad hasta cierto punto.
Peer utiliza la clase de adaptador de base de datos torch para establecer una conexión con la base de datos. Debido a que admite sistemas de bases de datos convencionales, los desarrolladores generalmente no necesitan escribir adaptadores para sistemas de bases de datos.
Después de crear el archivo de esquema del sistema de base de datos del proyecto, ejecute "ant -f build-torque.xml". Torque genera cuatro clases para el modelo de objetos de cada tabla en el esquema.
Por ejemplo, el desarrollador define la tabla Autor en project-schema.xml y las cuatro clases generadas por Torque son Author, AuthorPeer, BaseAuthor, BaseAuthorPeer, etc. Entre ellos, Author y AuthorPeer son subclases de BaseAuthor y baseauthor respectivamente. Estas dos clases base (BaseAuthor y baseauthor) contienen la lógica de generación de Torque y no deben modificarse durante el desarrollo. Debido a que Torque sobrescribirá estos archivos al regenerar el modelo de objetos, la lógica de negocios en el sistema debe ubicarse en las clases Author y AuthorPeer.
En Torque, AuthorPeer y baseAuthor se denominan clases de pares, y Author y BaseAuthor se denominan objetos de datos. La diferencia entre clases de pares y objetos de datos es que la "clase de pares" encapsula la información de la tabla de datos y proporciona métodos estáticos para agregar, eliminar y modificar registros en la tabla; el objeto de datos encapsula la información de los registros en la tabla y proporciona cada campo; Proporciona métodos captadores/mutadores.
4. Estándares
Los criterios son un par de objetos abstractos estándar de consulta SQL que los desarrolladores utilizan para encapsular declaraciones SQL específicas. Los criterios son en realidad una asignación de nombres de dominio y valores en declaraciones SQL, y el comparador predeterminado es igual a (=). También proporciona comparadores básicos, así como unir, ordenar por, distinguir, etc. Para obtener más métodos y propiedades, consulte org.apache.torque.util
Criteria.
Criteria proporciona una función SQL común. Si aún no puede satisfacer las necesidades de desarrollo, los desarrolladores aún pueden escribir declaraciones SQL manualmente.
Aplicación de Torque en J2EE
En el proyecto Apache Jakarta, existen muchos marcos de aplicaciones web, los más famosos son Struts, Cocoon y Turbine.
Torque, como herramienta de abstracción de bases de datos, está separado de Turbo, pero se puede combinar bien con otros marcos para convertirse en una excelente solución para la capa de persistencia.
Pasos de la aplicación
En aplicaciones J2EE, los pasos para utilizar torque son los siguientes:
1. Análisis y diseño de sistemas empresariales orientados a objetos;; p>
2. Según el modelo de objetos de negocio, forme el archivo de script de la base de datos Database.sql;
3. Escriba $torque_home/build.properties.