Category: Top » View » Spanish-37805


Técnicas para integrar Hibernate en el código de Java de la herencia - parte 1

Si usted es como mí, usted pasa mucho tiempo ocuparse del código de la herencia para el cual, cualquier razón, no se aprovecha de metodologías modernas y de bibliotecas. ¡He asumido el control los proyectos de Java que contienen centenares de millares de líneas del código y no de un solo tarro de tercera persona con excepción de un conductor de JDBC! Uno de los ejemplos mas comunes de esto es la puesta en práctica de la capa del acceso de los datos. Actualmente, la metodología de hecho implica Hibernate y DAOs, manejados generalmente por Spring.

Este artículo detallará los pasos que llevé recientemente el abrigo un uso grande del acceso custom-written de los datos a Hibernate y el resorte usando las instalaciones refactoring en eclipse. La llave con este refactorization es conseguir el código existente de la lógica del negocio (las acciones de los puntales, JSPs, delegado clasifican, servicio de negocio clasifican, etc.) para tener acceso al datastore usando Hibernate, manejado por Spring, sin manualmente cambiar cualquiera de ese código directamente. La parte 1 incluirá crear las clases, DAOs, y refactoring del objeto de los datos de Hibernate el código existente para trabajar con estos tipos creados recientemente. La parte 2 concluirá el proyecto con la integración del Hibernate DAOs y cableado todo para arriba con el resorte.

Primero de todos, necesitamos crear nuestro modelo de Hibernate y clases de DAO. Obviamente, puesto que nos estamos ocupando de una estructura del uso y de datos de la herencia, desearemos utilizar un acercamiento bottom-up a construir nuestra capa del acceso de los datos. Esto apenas significa que vamos a generar el código de Java y los archivos apropiados de los config de Hibernate de la base de datos existente. Hay muchas herramientas libremente disponibles hacer este proceso muy sin dolor. Recomiendo un eclipse Plugin para crear y mantener los artefactos de Hibernate (eclipse de Google “Hibernate Plugin” conseguir comenzado). La estructura y los requisitos para crear archivos de las clases y de los config de Hibernate están bien documentados a otra parte, así que no entraré el detalle aquí. Sin embargo, en este proyecto particular, los ciclos vitales de Hibernate DAO son manejados por Spring, así que las clases de DAO si todos amplían HibernateDAOSupport.

Ahora tenemos clases de Java (POJOs) que traz a nuestras tablas de la base de datos, pero ningunas de las aplicaciones existentes del código estos nuevos datos se oponen clases. Aquí es adonde las herramientas refactoring del eclipse vienen en realmente práctico. Por ejemplo, opinión tenemos una clase de la herencia llamada AccountInfo que corresponda a la tabla de la base de datos de la CUENTA. Derecho-tecleo la clase y el Refactor selecto - > interfaz del extracto. En la caja de diálogo, llame el nuevo interfaz IAccount y cerciórese de usted “uso selecto el tipo extraído del interfaz en lo posible.” Elija las otras opciones según sus preferencias. Chasque MUY BIEN y golpee con el pie detrás mientras que el eclipse cambia cada ocurrencia de las referencias de AccountInfo a las referencias y a los recompiles de IAccount. Por supuesto, haga esto con cada clase del modelo del objeto.

Si usted nunca realizó porqué las idiomas de OOP son tan grandes, usted está alrededor a. Ahora vamos al refactor el código para poder enganchar toda la herencia existente en las nuevas clases modelo de Hibernate en vez de la herencia unas. Continuando con el ejemplo de AccountInfo, cree una nueva clase - usted deseará probablemente crear un nuevo paquete para este paso - la cuenta llamada que amplía el Hibernate POJO para la cuenta y pone el nuevo interfaz de IAccount en ejecución.

Esta parte siguiente es la más desperdiciadora de tiempo, pero realmente no es ese malo. A este punto, la clase creada recientemente contendrá probablemente un manojo de métodos vacíos que contienen solamente comentarios de TODO. Esto es porque el interfaz de IAccount desafía muy probablemente un manojo de los métodos que no se ponen en ejecución en la cuenta POJO de Hibernate. Para tratar de éstos, quisiéramos básicamente que la nueva clase de la cuenta delegara a sus superclass generados siempre que sea necesario para satisfacer su contrato como tipo de IAccount. Como un ejemplo del mundo real del uso que trabajaba encendido, la clase de AccountInfo de la herencia definió un par del comprador/del setter para una característica llamada username, mientras que la columna correspondiente en la tabla de la CUENTA era realmente LOGIN_NAME. Para tratar de esto, usted pondría simplemente los métodos de get/setUsername en ejecución en cuenta para delegar a get/setLoginName (de sus superclass). También tuve que traducir entre los varios tipos de datos absolutamente un pedacito. Por ejemplo, el código de la herencia definiría muchas características mientras que las secuencias aun cuando el pedazo correspondiente de datos en la base de datos fueron definidas como un INTERNO o TIMESTAMP. Una vez más haga esto con cada clase del modelo del objeto.

Para acabar encima de los datos modele la capa, corrija el Hibernate apropiado y suelte los archivos de la configuración para referir a estas nuevas clases del modelo del objeto. El uso ahora tiene la capacidad de traz expedientes de la base de datos a los objetos de Java vía Hibernate, y el código de la herencia que refiere a estas clases no ha requerido corregir a mano. Para acabar encima de este proyecto del refactorization, necesitamos enganchar en el Hibernate Resorte-apoyado DAOs de una manera similar. En la parte 2 de este artículo, discutiré refactoring el código de la herencia para leer, para escribir, y datos de la actualización usando Hibernate y el resorte.

Sobre el autor

El Billy Perez es arquitecto mayor de los usos en Technetium, Inc. que proporcione el proyecto profesional que consulta para las compañías de la fortuna 1000. http://www.technetiuminc.com/


Rate, comment or bookmark this article

Seed Newsvine
Bookmark this article in your preferred program
AddThis Social Bookmark Button

Tags: , , ,

Este artículo ha sido traducido automáticamente de la fuente Inglés.

¿Cree usted que esta es una mala traducción?
Traducir este artículo, y usted gana dinero!

Creative Commons License
This article is licensed under a Creative Commons Attribution-Noncommercial-No Derivative Works 3.0 License.