Usando Hibernate en Java Swing Aplication
Creando la base de datos:
En este tutorial usaremos la base de datos mysql gratuita de netbeans llamada sakila, así que para agregarlo nos vamos al plugin manager de netbeans e instalamos y posteriormente activamos
Después de haber instalado el plugin nos vamos a la ventana de servicios para arrancar el mysql server y posterior con click derecho le damos en crear nueva base de datos:
Una vez agregada si no aparece conectada como en la imagen abajo la activamos mediante click derecho conectar:
Una vez la base de datos este lista procederemos a crear el proyecto.
Nos vamos a New Proyect, seleccionamos Java Aplicaction de la opción Java y le damos siguiente
En la siguiente ventana escribimos el nombre del proyecto (en este ejemplo le llamaremos hibernate_ejemplo), deseleccionamos la opción Use Dedicated Folder, deseleccionamos Create Main Class, y le damos en finalizar
Ahora como siguiente paso le agregaremos el soporte de hibernate a nuestro proyecto agregando las librerías de hibernate, desde el menú projects le damos click derecho al paquete de librerías y le damos en la opción Add Library y seleccionamos las librerías de hibernate en el cuadro de dialogo mostrado
Ya tenemos agregadas las librerías asi q procedemos a crear los archivos de configuración necesarios para hibernate, le damos click derecho al archivo del proyecto y le damos click a Other en la opción New. Ahora en la ventana de New File le damos seleccionamos hibernate y luego Hibernate Configuration Wizard y le damos siguiente.
En la siguiente ventana dejamos la configuración por defecto y le damos siguiente:
En la siguiente ventana en la opción de Database Connection seleccionamos Sakila de las opciones y luego click en finalizar.
Con esto se habrá creado un archivo hibernate.cfg.xml dentro de nuestro proyecto y procederemos a cambiarle algunas opciones en la configuración. En la sección de Optional Properties buscamos Configuration Properties lo expandimos y le damos Add:
Luego buscamos la opción Miscellaneous Properties la expandimos y le damos click en Add y selecionamos la opción hibernate.query.factory_class como Property Name y también seleccionamos org.hibernate.hql.classic.ClassicQueryTranslatorFactory como Property Value
Si le damos en la vista de XML podremos observar algo parecido a lo siguiente:
Siempre es aconsejable guardar los cambios después de agregar algo nuevo por cualquier catástrofe que pueda suceder (=P)
Como siguiente paso agregaremos el archivo HibernateUtil.java, dando click derecho en el pequete fuente del proyecto, click en New y luego en Other, aparecerá la ventana de nuevo archivo, seleccionamos hibernate y luego seleccionamos HibernateUtil.java y le damos click en siguiente:
En la siguiente ventana escribimos HibernateUtil como nombre de la clase y sakila.util como nombre del paquete y le damos en finalizar:
Ahora crearemos el archivo Reverse Engineering, nos vamos nuevamente al archivo fuente del proyecto, le damos click derecho, New y luego Other, veremos nuevamente la ventana de selección de archivo nuevo, ahí seleccionamos Hibernate Reverse Engineering Wizard en el listado desplegado de hibernate y damos click en siguiente:
En la ventana siguiente escribimos hibernate.reveng en File Name y click en siguiente:
Ahora en esta nueva ventana seleccionamos la tabla Actor de las tablas disponibles y le damos agregar y luego finalizar:
Ahora solo nos falta un archivo de configuración asi que, nuevamente nos vamos al origen del proyecto, le damos click derecho y seleccionamos New y luego seleccionamos Other, nos aparecerá el menú de selección de archivo nuevo, seleccionamos hibernate y luego Hibernate Mapping Files and POJOs
En esta nueva ventana seleccionamos las opciones de manera que quede de la siguiente manera:
Ahora que ya tenemos los archivos de configuración solo nos resta agregar una interfaz grafica esto lo hacemos de la siguiente manera:
Dejamos las configuraciones de la siguiente manera:
Una vez le damos en finalizar ya podemos agregar etiquetas, botones, cajas de texto y también una tabla de manera que se pueda ver de la siguiente forma:
Ahora procederemos a hacer unas consultas en el editor HQL Query, nos vamos a los archivos del proyecto, expandimos el default package, y le damos click derecho a hibernate.cfg.xml y seleccionamos Run HQL Query
En este editor veremos como se hacen las consultas usando hibernate. Y podemos probar el editor de la siguiente manera:
Ahora bien realizaremos un par de consultas:
from Actor a where a.firstName like 'PE%'
from Actor a where a.lastName like 'MO%'
Nos mostrara los siguientes resultados:
Ahora solo nos resta agregarle unas cuantas líneas de código:
private static String Busqueda_Basada_En_Nombre="from Actor a where a.firstName like '";
private static String Busqueda_Basada_En_Apellido="from Actor a where a.lastName like '";
private void runBusquedaBasadaEnNombre () {
executeHQLQuery(Busqueda_Basada_En_Nombre + jTextField1.getText() + "%'");
}
private void run BusquedaBasadaEnApellido () {
executeHQLQuery(Busqueda_Basada_En_Apellido+ jTextField2.getText() + "%'");
}
private void executeHQLQuery(String hql) {
try {
Session session = HibernateUtil.getSessionFactory().openSession();
session.beginTransaction();
Query q = session.createQuery(hql);
List resultList = q.list();
displayResult(resultList);
session.getTransaction().commit();
} catch (HibernateException he) {
he.printStackTrace();
}
}
Nos quedara de la siguiente manera:
Agregamos estas líneas también
private void displayResult(List resultList) {
Vector tableHeaders = new Vector();
Vector tableData = new Vector();
tableHeaders.add("ActorId");
tableHeaders.add("FirstName");
tableHeaders.add("LastName");
tableHeaders.add("LastUpdated");
private void displayResult(List resultList) {
Vector
Vector tableData = new Vector();
tableHeaders.add("ActorId");
tableHeaders.add("FirstName");
tableHeaders.add("LastName");
tableHeaders.add("LastUpdated");
“ for(Object o : resultList) {
Actor actor = (Actor)o;
Vector
1 comentario:
Mae la verdad Muchas Gracias !! me sirvió 100% ... saludos desde Costa Rica :-D, agrega mas ejemplos...
Publicar un comentario