Consideraciones:
1. El proyecto ha sido creado con Eclipse Helios
2. Se usa Hibernate 3 y MySql 5.5
4. Se usará JDK 6
3. Las librerías a utilizar son:
Para implementar Hibernate 3 (todas estas librerías las pueden descargar de www.hibernate.org)
- antlr-2.7.6.jar
- hibernate3.jar
- commons-collections-3.1.jar
- dom4j-1.6.1.jar
- javassist-3.4.GA.jar
- jta-1.1.jar
- slf4j-api-1.5.6.jar
- slf4j-log4j12-1.5.6.jar
- log4j-1.2.14.jar
- mysql-connector-java-5.1.18-bin.jar
Las librerías deberán estar en una carpeta llamada lib dentro de la carpeta del proyecto.
Pasos a seguir, manos a la obra:
1. Crear un nuevo Java Project de nombre iadDemoHibernateMySQL: Click derecho en el explorador de proyectos luego seleccionar New -Other - Java - Java Project.
Datos del Java Project
2. Agregamos las librerías: Click derecho sobre el nombre del proyecto, seleccionamos Build Path - Configure Build Path). En la pestaña Librerias escogemos Add External JARs y agregamos las librerías mencionas en las consideraciones.
3. Creamos el paquete com.imagineanddo.demo.persistence.hibernate y dentro de este creamos una clase cuyo método main nos servirá para validar que la configuración se realizó correctamente. Los demás archivos también se crearán dentro de estas misma carpeta
/** * */ package com.imagineanddo.demo.persistence.hibernate; import java.util.Date; import java.util.List; import org.apache.log4j.BasicConfigurator; import org.apache.log4j.Level; import org.apache.log4j.Logger; import org.hibernate.Session; /** * @author www.imagineanddo.com * */ public class DemoHibernateMySQL { /** * @param args */ public static void main(String[] args) { BasicConfigurator.configure(); Logger.getRootLogger().setLevel(Level.WARN); new DemoHibernateMySQL(); HibernateUtil.getSessionFactory().close(); } public DemoHibernateMySQL() { //CREO UN OBJETO EMPRESA Y LO INSERTO EN LA BD Empresa e1=new Empresa(); e1.setStrNombre("MICROSOFT"); e1.setStrEstado("1"); int intidEmpresa1 = registraEmpresa(e1); //CREO UN OBJETO EMPRESA Y LO INSERTO EN LA BD Empresa e2=new Empresa(); e2.setStrNombre("GOOGLE"); e2.setStrEstado("1"); int intidEmpresa2 = registraEmpresa(e2); //CREO UN OBJETO EMPRESA Y LO INSERTO EN LA BD Empresa e3=new Empresa(); e3.setStrNombre("APPLE"); e3.setStrEstado("0"); int intidEmpresa3 = registraEmpresa(e3); //CREO UN OBJETO PERSONA Y LO INSERTO EN LA BD Persona p1=new Persona(); p1.setStrNombres("JUAN CARLOS"); p1.setStrApellidos("GUTIERRES PEREZ"); p1.setIntEdad(28); Empresa emp=new Empresa(); emp.setIntId(1); p1.setObjEmpresa(emp); p1.setStrEstado("1"); int intIdPersona1 = registraPersona(p1); //CREO UN OBJETO PERSONA Y LO INSERTO EN LA BD Persona p2=new Persona(); p2.setStrNombres("MIGUEL ANGEL"); p2.setStrApellidos("ESTRADA PINTO"); p2.setIntEdad(23); Empresa emp2=new Empresa(); emp2.setIntId(2); p2.setObjEmpresa(emp2); p2.setStrEstado("1"); int intIdPersona2 = registraPersona(p2); listarPersonas(); } private int registraEmpresa(Empresa e) { Session session = HibernateUtil.getSessionFactory().getCurrentSession(); session.beginTransaction(); session.save(e); session.getTransaction().commit(); return e.getIntId(); } private int registraPersona(Persona p) { Session session = HibernateUtil.getSessionFactory().getCurrentSession(); session.beginTransaction(); session.save(p); session.getTransaction().commit(); return p.getIntId(); } private List4. Creamos las clases Persona y Empresa Persona.javalistarPersonas() { Session session = HibernateUtil.getSessionFactory().getCurrentSession(); session.beginTransaction(); List result = session.createQuery("from Persona").list(); // Debe hacerse el listado antes del commit, puesto que el toString() // de Person consulta los Event asociados a la persona. for (Persona persona : result) { System.out.println("PERSONA : " +persona.getStrNombres()+" "+persona.getStrApellidos() + " / EMPRESA : " +persona.getObjEmpresa().getStrNombre()); //System.out.println(persona.getStrNombres()); } // Cierre de sesion session.getTransaction().commit(); return result; } }
/** * */ package com.imagineanddo.demo.persistence.hibernate; /** * @author www.imagineanddo.com * */ public class Persona { private int intId; private String strNombres; private String strApellidos; private int intEdad; private int intIdEmpresa; private String strEstado; private Empresa objEmpresa; public int getIntId() { return intId; } public void setIntId(int intId) { this.intId = intId; } public String getStrNombres() { return strNombres; } public void setStrNombres(String strNombres) { this.strNombres = strNombres; } public String getStrApellidos() { return strApellidos; } public void setStrApellidos(String strApellidos) { this.strApellidos = strApellidos; } public int getIntEdad() { return intEdad; } public void setIntEdad(int intEdad) { this.intEdad = intEdad; } public String getStrEstado() { return strEstado; } public void setStrEstado(String strEstado) { this.strEstado = strEstado; } public int getIntIdEmpresa() { return intIdEmpresa; } public void setIntIdEmpresa(int intIdEmpresa) { this.intIdEmpresa = intIdEmpresa; } public Empresa getObjEmpresa() { return objEmpresa; } public void setObjEmpresa(Empresa objEmpresa) { this.objEmpresa = objEmpresa; } }
Empresa.java
/** * */ package com.imagineanddo.demo.persistence.hibernate; /** * @author www.imagineanddo.com * */ public class Empresa { private int intId; private String strNombre; private String strEstado; public int getIntId() { return intId; } public void setIntId(int intId) { this.intId = intId; } public String getStrNombre() { return strNombre; } public void setStrNombre(String strNombre) { this.strNombre = strNombre; } public String getStrEstado() { return strEstado; } public void setStrEstado(String strEstado) { this.strEstado = strEstado; } }5. Creamos los mapeos de las clases Persona y Empresa
Persona.hbm.xml
Empresa.hbm.xml
6. Creamos el archivo de configuración de hibernate y la configuración de la conexión a mysql,
7. Al final de crear los archivos el explorados de proyectos deberá verse así:com.mysql.jdbc.Driver jdbc:mysql://localhost/demo_hibernate_mysql demo 12345678 1 org.hibernate.dialect.MySQLDialect thread org.hibernate.cache.NoCacheProvider false false create
8. Para probar que todo esta correcto ejecutamos la clase DemoHibernateMySQL.java. Si todo esta correcto la consola deberá escribir el siguiente texto:
Las fuentes del proyecto las pueden descargar desde:
http://imagineanddo-demo-hibernate-mysql.googlecode.com/svn/trunk/
Si tienen dificultades para descargar de Google Code, aquí un manual de como pueden hacerlo:
http://www.imagineanddo.com/2011/10/informatica-descargar-proyectos-de.html
No hay comentarios:
Publicar un comentario