En este tutorial, se utiliza el IDE NetBeans para crear una aplicacin Java Swing de un arquetipo de Maven. La aplicacin utiliza el marco Hibernate como capa de persistencia para recuperar POJO (Plain Old Java Objects) de una base de datos relacional. El tutorial se muestra cmo los magos en el IDE puede ayudarle a crear los archivos necesarios de Hibernate y agregar dependencias de Hibernate para el POM. Despus de crear los objetos Java y configurar la aplicacin para utilizar Hibernate, se crea una interfaz grfica de usuario para la bsqueda y visualizacin de los datos. Soporte para Maven est totalmente integrado en el IDE NetBeans y Maven 3 est incluido con el IDE NetBeans IDE a partir de 7,0. Puede crear aplicaciones de los arquetipos Maven o paquetes de arquetipos en repositorios remotos en el asistente Nuevo proyecto. El navegador de repositorios Maven le permite explorar los repositorios Maven local y remota, examinar objetos y agregar dependencias del proyecto de POM del proyecto. Para crear esta aplicacin utilizando Ant, consulte Uso de Hibernate en una aplicacin Java Swing . Para construir una aplicacin Java EE Maven, consulte Creacin de una aplicacin de empresa utilizando Maven . Contenido
Creacin de la Base de Datos Configuracin de Maven Visualizacin de los repositorios Maven Crear la aplicacin Maven Modificacin de las propiedades de un proyecto Maven Adicin de archivos de hibernacin y dependencias Creacin del archivo de configuracin de Hibernate Modificacin del archivo de configuracin de Hibernate Creacin de la HibernateUtil.java Archivo Helper Generacin de archivos de mapeo de Hibernate y las clases Java Creacin de archivos de Hibernate Mapping y POJOs Desde una base de datos Creacin de la interfaz grfica de la aplicacin Crear el formulario JFrame Agregar elementos al formulario Crear la consulta en el Editor de consultas HQL Adicin de la consulta para el formulario
Ejecucin de un Proyecto Maven Descarga del proyecto Solucin Creacin de archivos de asignacin y POJOs individual (Opcional) Para seguir este tutorial, necesitar el siguiente software y recursos. Software o Recurso Versin Requerido
NetBeans IDE
versin 6 7
Maven
Antes de comenzar este tutorial es posible que desee familiarizarse con la siguiente documentacin.
Mejores prcticas para Apache Maven en NetBeans 6.x Captulo 1. Introduccin a Apache Maven (de Maven: The Definitive Guide ) Hibernar documentacin en hibernate.org Introduccin a la interfaz grfica de usuario Edificio Conexin a una base de datos MySQL tutorial Puede descargar un archivo zip del proyecto terminado .
3. 4.
Haga clic en el nodo MySQL Server y seleccione Crear base de datos. Seleccione la base de datos Sakila en el men Base de datos Nuevo nombre de la lista desplegable en el cuadro de dilogo Crear base de datos MySQL. Haga clic en Aceptar.
Al hacer clic en el IDE ejecutar un script para crear la base de datos Sakila y llenar las tablas de base de datos. Usted puede ver los resultados de la ejecucin del script en la ventana de resultados. Un nodo para la base de datos Sakila tambin se agrega en el nodo del servidor MySQL. 5. Haga clic en el nodo Sakila y seleccione Conectar.
Al hacer clic en Conectar, un nodo de conexin de base de datos para la base de datos Sakila ( jdbc:
Configuracin de Maven
Si este es su primer proyecto Maven tendr que comprobar los ajustes de configuracin de Maven en la ventana Opciones. Para completar este tutorial, debe tener Maven instalado en el sistema local. A partir de NetBeans IDE 7.0, Maven se incluye con el IDE y se instala al instalar el IDE. 1. 2. 3. Abra la ventana de Opciones de la IDE. Seleccione la categora de Java en la ventana de Opciones y haga clic en la ficha Maven. Confirme que un hogar Maven se especifica. Puede usar la versin de Maven incluido con el IDE o especifique la ubicacin de una instalacin local de Maven (requiere 2.0.9 o posterior). 4. 5. Notas. Compruebe que la ubicacin del repositorio local de Maven es correcta. Haga clic en Aceptar para cerrar la ventana Opciones.
Si no ha creado un proyecto Maven en el IDE antes, primero tendr que activar el mdulo Maven en el IDE. Usted puede hacer esto mediante la seleccin de un proyecto Maven arquetipo en el asistente Nuevo proyecto. Cuando se selecciona el arquetipo del IDE automticamente se activar el mdulo. No es necesario para finalizar el asistente para activar Maven en el IDE.
En NetBeans IDE 7.1 y versiones anteriores del IDE, la ficha Maven en la ventana Opciones se encuentra en la categora Miscelneas.
Maven no se instala por defecto con NetBeans IDE 6.9. Puede descargar el instalador desde el Maven Maven sitio .
Cuando el cursor se encuentra sobre un artefacto, el IDE muestra un tooltip con las coordenadas del artefacto. Puede hacer doble clic en el archivo JAR de un artefacto para ver detalles adicionales sobre el artefacto. Puede buscar un artefacto haciendo clic derecho en el nodo Repositorios Maven en la ventana Servicios y seleccionando Buscar. Para ms informacin sobre la gestin de las dependencias de Maven ruta de clases y el trabajo con repositorios de Maven en el IDE, consulte la gestin de la dependencia seccin de Mejores Prcticas para Apache Maven en NetBeans IDE . Notas para NetBeans IDE 7.1 y versiones anteriores del IDE.
Seleccione Ventana> Otros> Repositorios Maven Navegador para ver los repositorios Maven. Puede utilizar los botones de la barra de herramientas del Explorador de Repositorios Maven para actualizar los ndices y bsqueda de artefactos.
Elegir un Arquetipo
El asistente New Project permite crear un proyecto Maven desde un arquetipo de Maven. El IDE incluye varios arquetipos para tipos comunes de NetBeans del proyecto, pero tambin se puede localizar y elegir los arquetipos en los repositorios remotos en el asistente. 1. 2. Seleccione Archivo> Nuevo Proyecto (Ctrl + Maysculas + N). Seleccione la aplicacin Java de la categora de Maven. Haga clic en Siguiente. Nota. Si est utilizando NetBeans IDE 6.9 o anterior, seleccione Proyecto Maven Maven de la categora y, a continuacin, seleccione Inicio rpido Arquetipo Maven en el siguiente panel del asistente.
3. 4.
Tipo DVDStoreAdmin para el nombre del proyecto y establecer la ubicacin del proyecto. Modificar el ID de grupo predeterminado y Versin (opcional). El ID de grupo y versin se usar como las coordenadas para el artefacto en su repositorio local al generar el proyecto.
5.
Al hacer clic en terminar el IDE crea el proyecto Maven y abre el proyecto en la ventana de proyectos. El IDE crea automticamente la clase App.java en elcom.mycompany.dvdstoreadmin paquete. Puede eliminar App.java porque la aplicacin no lo necesita. Nota. Si esta es la primera vez que se crea un proyecto Maven, Maven necesita descargar algunos plugins necesarios y artefactos en el repositorio local. Esto puede llevar algn tiempo.
2. 3.
Seleccione la categora de fuentes en la ventana Propiedades. Asegrese de que el formato de origen / Binary que est seleccionado en la lista desplegable es de 1,5 o superior.
4.
6.
Seleccione la conexin sakila del men desplegable conexin con la base. Haga clic en Finalizar.
Al hacer clic en Finalizar el IDE abre hibernate.cfg.xml en el editor. El archivo de configuracin contiene informacin acerca de una sola base de datos. Si expande el nodo Dependencias en la ventana de proyectos se puede ver que el IDE aadido los artefactos necesarios Hibernate. El IDE se enumeran todas las dependencias directas y transitivas necesarios para compilar el proyecto bajo el nodo Dependencias. Los artefactos que son dependencias directas (dependencias que se especifican en el POM del proyecto) se indican mediante iconos de colores JAR. Un artefacto se atenan si se trata de una dependencia transitiva (un artefacto que es la dependencia de una o ms dependencias directas).
Puede ver los detalles de artefactos haciendo clic derecho y seleccionando un JAR Ver detalles artefacto. El Visor artefacto contiene fichas que proporcionan detalles sobre el artefacto seleccionado. Por ejemplo, la ficha Bsico proporciona detalles sobre las coordenadas del artefacto y versiones disponibles. La ficha Grfico proporciona una representacin visual de las dependencias del artefacto seleccionado.
Tambin puede utilizar la ficha Grficos para descubrir y resolver conflictos de versin entre dependencias.
5.
Haga clic en Agregar en el nodo Propiedades y seleccione Varios hibernate.query.factory_class en la lista desplegable Nombre de la propiedad.
6.
Nota. Si est utilizando NetBeans IDE 7.0 o anterior tiene que escribir org.hibernate.hql.classic.ClassicQueryTranslatorFactory como el valor de la propiedad. Si hace clic en la ficha XML en el editor se puede ver el archivo en la vista XML. El archivo debe ser similar al siguiente:
<hibernate-configuration> <session-factory name="session1"> <propiedad name="hibernate.dialect"> org.hibernate.dialect.MySQLDialect </ propiedad> <propiedad name="hibernate.connection.driver_class"> com.mysql.jdbc.Driver </ propiedad> <propiedad name="hibernate.connection.url"> jdbc: mysql :/ / localhost: 3306/sakila </ propiedad> <propiedad raz name="hibernate.connection.username"> </ propiedad> <propiedad name="hibernate.connection.password"> # # # # # # </ propiedad> <propiedad name="hibernate.show_sql"> true </ propiedad> <Propiedad </ Session-factory> </ Hibernate-configuration>
7. Guarde los cambios en el archivo.
Cuando se ejecuta el proyecto que usted ser capaz de ver la consulta SQL impreso en la ventana de salida del IDE.
1.
Haga clic derecho en el nodo Source Packages y seleccione Nuevo> Otros para abrir el asistente para Nuevo archivo.
2.
Seleccione Hibernar en la lista Categoras y HibernateUtil.java de la lista Tipos de archivo. Haga clic en Siguiente.
3.
Escriba HibernateUtil para el nombre de clase y sakila.util como el nombre del paquete. Haga clic en Finalizar.
Al hacer clic en Finalizar, HibernateUtil.java se abre en el editor. Usted puede cerrar el archivo, ya que no es necesario editar el archivo.
Nota. Cuando se desea crear archivos de varias tablas lo ms probable es que desee utilizar los asistentes. En este tutorial slo tiene que crear un POJO y un archivo de asignacin, as que es bastante fcil de crear los archivos individualmente. Usted puede ver los pasos a seguir para la creacin de los POJOs y archivos de asignacin individual al final de este tutorial.
5.1.13.jar , por ejemplo). Si un JAR adecuado no aparece como una dependencia de proyecto en
el nodo Dependencias, puede agregar la dependencia haciendo clic derecho en el nodo Dependencias y eligiendo Agregar dependencia.
5.
Asegrese de que el cdigo de dominio y Asignaciones XML Hibernate opciones estn seleccionadas.
6.
Al hacer clic en Finalizar, el IDE genera el POJO Actor.java con todos los campos requeridos en el src / main / java / sakila / entidad directorio. El IDE tambin genera un archivo de mapeo de Hibernate en src / main / resources / sakila / entidad directorio y agrega la entrada de asignacin ahibernate.cfg.xml . Ahora que usted tiene los POJO y necesario Hibernate archivos relacionados que puede crear un simple Java front-end GUI para la aplicacin. Tambin crear a continuacin, agregue una consulta HQL que consulta la base de datos para recuperar los datos. En este proceso tambin usamos el editor HQL para construir y probar la consulta.
1.
Haga clic derecho en el nodo del proyecto en la ventana Proyectos y seleccione Nuevo> Otros para abrir el asistente para Nuevo archivo.
2. 3.
Seleccione Formulario JFrame de la categora Swing GUI Forms. Haga clic en Siguiente. Tipo DVDStoreAdmin para el nombre de la clase y el tipo sakila.ui para el paquete. Haga clic en Finalizar.
Al hacer clic en Finalizar, el IDE crea la clase y abre el Formulario JFrame en la vista Diseo del editor.
Nombre de la variable
firstNameTextField
queryButton
Mesa
9.
ResultTable
Cambiar el tamao de los campos de texto y alinear los elementos del formulario. Se puede habilitar la propiedad Redimensionable horizontal para los campos de texto para que los campos de texto cambia de tamao con la ventana y que la separacin entre elementos se mantiene constante.
10. Guarde los cambios. En la vista Diseo del formulario debe ser similar a la siguiente imagen.
Ahora que tiene un formulario que usted necesita para crear el cdigo para asignar eventos a los elementos del formulario. En el siguiente ejercicio se construyen sobre la base de consultas Hibernate Query Language para recuperar datos. Despus de construir las consultas que se sumarn a los mtodos de la forma de invocar la consulta adecuada cuando el botn se pulsa consulta.
(traducido) de consultas SQL. Al hacer clic en el botn "Run Query HQL 'en la barra de herramientas, el IDE ejecuta la consulta y muestra los resultados en la parte inferior del editor. En este ejercicio se utiliza el Editor de HQL para la construccin de simples consultas HQL que recuperan una lista de detalles de los actores sobre la base de que coincida con el nombre de pila o el apellido. Antes de aadir la pregunta a la clase que va a utilizar el Editor de consultas HQL para comprobar que la conexin funciona correctamente y que la consulta produce los resultados deseados. Antes de ejecutar la consulta que primero hay que compilar la aplicacin. 1. Haga clic derecho en el nodo del proyecto y elija Generar. Al hacer clic en Crear, el IDE descargar los artefactos necesarios para su repositorio local de 2. Maven. Expanda el paquete> predeterminado> fuente nodo del paquete en el nodo de otras fuentes en la ventana de proyectos. 3. Haga clic hibernate.cfg.xml y selecciona Ejecutar consulta HQL para abrir el Editor de HQL. 4. Pruebe la conexin escribiendo desde Actor en el Editor de consultas HQL. Haga clic en el botn Ejecutar consulta HQL ( ) en la barra de herramientas.
Al hacer clic en Ejecutar consulta HQL usted debe ver los resultados de la consulta en el panel inferior del Editor de consultas HQL.
5.
Escriba la consulta siguiente en el Editor de consultas HQL y haga clic en Ejecutar consulta HQL para comprobar los resultados de la consulta cuando la cadena de bsqueda es "PE".
La consulta devuelve una lista de "los detalles de aquellos actores cuyos nombres comienzan con 'actores PE'. Si hace clic en el botn SQL encima de los resultados debe ver la siguiente consulta SQL equivalente.
seleccionar actor0_.actor_id como col_0_0_ de sakila.actor actor0_ donde (actor0_.first_name como '% PE')
6. Abra una nueva pestaa Editor de consultas HQL y escriba la consulta siguiente en el panel de edicin. Haga clic en Ejecutar consulta HQL.
3. DVDStoreAdmin pblico () { 4. initComponents (); 5. } 6. 7. QUERY_BASED_ON_FIRST_NAME privado static String = "de un Actor en a.firstName como '"; QUERY_BASED_ON_LAST_NAME privado static String = "de un Actor en a.lastName como '";
Es posible copiar las preguntas en las fichas del Editor de consultas HQL en el archivo y luego modificar el cdigo. 8. Agregue los mtodos siguientes para crear la consulta basada en la cadena de entrada del usuario.
9. runQueryBasedOnFirstName private void () { 10. executeHQLQuery (QUERY_BASED_ON_FIRST_NAME firstNameTextField.getText + () + "% '"); 11. } 12. 13. runQueryBasedOnLastName private void () {
14. executeHQLQuery (QUERY_BASED_ON_LAST_NAME lastNameTextField.getText + () + "% '"); } Los mtodos de llamar a un mtodo llamado executeHQLQuery () y crear la consulta
mediante la combinacin de la cadena de consulta con el usuario haya introducido texto a buscar. 15. Agregue el executeHQLQuery () mtodo.
16. executeHQLQuery private void (String HQL) { 17. try { 18. . Session session = HibernateUtil.getSessionFactory () openSession (); 19. session.beginTransaction (); 20. Query q = session.createQuery (HQL); 21. ResultList Lista q.list = (); 22. displayResult (resultList); 23. . session.getTransaction () commit (); 24. Catch} (HibernateException l) { 25. he.printStackTrace (); 26. } } El executeHQLQuery () las llamadas a mtodos Hibernate para ejecutar la consulta seleccionada. Este mtodo hace uso de la HibernateUtil.java clase de utilidad para
obtener la sesin de Hibernate. 27. Fije sus importaciones para aadir declaraciones de importacin para las bibliotecas de Hibernate ( org.hibernate.Query , org.hibernate.Session ) yjava.util.List . 28. Cree un controlador de evento Consulta botn se cambia a la vista Diseo y haga doble clic en el botn Consulta. El IDE crea el queryButtonActionPerformed mtodo y muestra el mtodo en la vista Cdigo fuente. 29. Modificar el queryButtonActionPerformed mtodo en la vista Cdigo fuente, agregue el cdigo siguiente para que una consulta se ejecuta cuando el usuario hace clic en el botn.
30. private void queryButtonActionPerformed (java.awt.event.ActionEvent evt) { 31. if (! firstNameTextField.getText (). trim (). equals ("")) { 32. runQueryBasedOnFirstName (); 33. } Else if (! LastNameTextField.getText (). Trim (). Equals ("")) { 34. runQueryBasedOnLastName (); 35. }
}
36. Agregue el mtodo siguiente para mostrar los resultados en el JTable.
37. private void displayResult (resultList List) { 38. TableHeaders vectoriales <String> <String> = new Vector (); 39. Vector TableData = new Vector (); 40. tableHeaders.add ("ActorId"); 41. tableHeaders.add ("Nombre"); 42. tableHeaders.add ("LastName"); 43. tableHeaders.add ("LastUpdated"); 44. 45. para (Object o: resultList) { 46. Actor Actor = (Actor) o; 47. Vector <Object> oneRow = new Vector <Object> (); 48. oneRow.add (actor.getActorId ()); 49. oneRow.add (actor.getFirstName ()); 50. oneRow.add (actor.getLastName ()); 51. oneRow.add (actor.getLastUpdate ()); 52. tableData.add (oneRow); 53. } 54. resultTable.setModel (DefaultTableModel nuevo (TableData, tableHeaders)); } 55. Fije sus importaciones (Ctrl + Shift + I) para aadir java.util.Vector y guardar los
cambios. Despus de guardar el formulario que usted puede ejecutar el proyecto.
Creacin y ejecucin de un proyecto por primera vez, puede llevar algn tiempo si el IDE tiene que obtener ninguna dependencias del proyecto. Compilaciones posteriores sern mucho ms rpido.
Para ejecutar esta aplicacin, primero debe especificar la clase principal. Para compilar y ejecutar esta aplicacin, realice las siguientes tareas. 1. Haga clic derecho en el nodo del proyecto en la ventana Projects y seleccione Propiedades.
2. 3.
Seleccione la categora Ejecutar en el cuadro de dilogo Propiedades del proyecto. Tipo sakila.ui.DVDStoreAdmin para la clase principal. Haga clic en Aceptar. Como alternativa, puede hacer clic en el botn Examinar y seleccione la clase principal en el cuadro de dilogo.
4.
Haga clic en Ejecutar proyecto principal en la barra de herramientas principal para lanzar la aplicacin.
Cuando se invoca la accin de ejecucin en un proyecto Maven en el IDE, el IDE ejecuta las metas Maven asociados con la accin Ejecutar. El IDE tiene objetivos predeterminados vinculados a las acciones IDE de acuerdo con el embalaje del proyecto. Usted puede ver los objetivos vinculados a la accin de ejecucin en el panel Acciones de la ventana Propiedades del proyecto
Puede personalizar la unin de las metas a las acciones en el panel Acciones de la ventana Propiedades del proyecto. La forma de interfaz grfica de usuario se abre al iniciar la aplicacin. Escriba una cadena de bsqueda en el campo Nombre o Apellido texto y haga clic en Consulta para buscar un actor y ver los detalles.
Si nos fijamos en la ventana Resultados de la IDE se puede ver la consulta SQL que recupera los resultados mostrados.
Descargar un archivo zip del proyecto terminado . La comprobacin de las fuentes de los proyectos de las muestras de NetBeans llevando a cabo los siguientes pasos:
Seleccione Equipo> Subversion> Checkout en el men principal. En el cuadro de dilogo Obtener, introduzca la URL del repositorio siguiente: https://svn.netbeans.org/svn/samples ~-muestras de cdigo
Especifique la carpeta local de las fuentes (la carpeta local debe estar vaco). Haga clic en Finalizar.
Al hacer clic en Finalizar, el IDE se inicializa la carpeta local como repositorio Subversion y comprueba las fuentes del proyecto.
Haga clic en Abrir proyecto en el cuadro de dilogo que aparece cuando se compra se ha completado.
Notas.
Pasos para la comprobacin hacia fuera fuentes de Kenai slo se aplican a NetBeans IDE 6.7 y 6.8. Usted necesita un cliente de Subversion para descargar las fuentes desde Kenai. Para ms informacin sobre la instalacin de Subversion, vea la seccinConfiguracin de Subversion en la Gua para la subversin en NetBeans IDE .
4. Actor clase pblica implementa Serializable { 5. actorId Corto privado; 6. firstName private String; 7. lastName private String; 8. lastupdate Fecha privado; }
9. Generar los getters y setters para los campos colocando el cursor de insercin en el editor de cdigo fuente, escribiendo Alt-Insert y luego seleccionando Getter y Setter.
10. En los getters setters Generar y caja de dilogo, seleccione todos los campos y haga clic en Generar.
En los getters setters Generar y caja de dilogo, puede utilizar la flecha hacia arriba en el teclado para mover el elemento seleccionado en el nodo Actor y pulse la barra espaciadora para seleccionar todos los campos Actor. 11. Fije sus importaciones y guardar los cambios. Despus de crear el POJO para la tabla que se desea crear un archivo de asignacin de Hibernate para Actor.java . 1. Haga clic con el sakila.entity paquetes fuente nodo en la ventana Proyectos y seleccione Nuevo> Otros para abrir el asistente para Nuevo archivo. 2. 3. Seleccione Hibernate Mapping Asistente en la categora de Hibernate. Haga clic en Siguiente. Tipo Actor.hbm para el nombre del archivo y configurar la carpeta de src / main / resources / sakila / entidad . Haga clic en Siguiente. 4. Tipo sakila.entity.Actor para la clase de mapa.
5.
Seleccione el actor de la tabla de base de datos de la lista desplegable si no est ya seleccionado. Haga clic en Finalizar.
Al hacer clic en Finalizar la Actor.hbm.xml archivo de mapeo Hibernate se abre en el editor de cdigo fuente. El IDE tambin agrega automticamente una entrada para la asignacin de recursos a hibernate.cfg.xml . Puede ver los detalles de la entrada al expandir el nodo Mapping en la vista Diseo dehibernate.cfg.xml o en la vista XML. La asignacin
de entrada en la vista XML tendr un aspecto similar al siguiente: <Mapping resource="sakila/entity/Actor.hbm.xml"/> </ Session-factory> </ Hibernate-configuration> 6. Asigne los campos en Actor.java a las columnas de la tabla ACTOR al hacer los siguientes cambios (en negrita) para Actor.hbm.xml . 7. <hibernate-mapping> 8. <Nombre class = "sakila.entity.Actor" tabla = "actor"> 9. <id name="actorId" type="java.lang.Short"> 10. <column name="actor_id"/> 11. <generator class="identity"/> 12. </ Id> 13. <propiedad name="firstName" type="string"> 14. <column length="45" name="first_name" not-null="true"/> 15. </ Propiedad> 16. <propiedad name="lastName" type="string"> 17. <column length="45" name="last_name" not-null="true"/> 18. </ Propiedad> 19. <propiedad name="lastUpdate" type="timestamp"> 20. <column length="19" name="last_update" not-null="true"/> 21. </ Propiedad> 22. </ Class> </ hibernate-mapping>
Puede usar la implementacin del cdigo en el editor para completar los valores al modificar el archivo de asignacin. Nota: Por defecto, el generado clase elemento tiene una etiqueta de cierre. Debido a que es necesario agregar elementos de propiedad entre la apertura y el cierre de clases etiquetas de elementos, es necesario realizar los siguientes cambios (en negrita). Despus de realizar los cambios que usted puede usar la implementacin del cdigo entre las clases etiquetas.
<hibernate-mapping> <Nombre class = "sakila.entity.Actor" tabla = "actor"> </ Class> </ hibernate-mapping>
23. Haga clic en el botn Validar XML en la barra de herramientas y guardar los cambios. Creacin de POJOs individuales y archivos de mapeo Hibernate podra ser una manera conveniente para personalizar an ms su aplicacin