⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 eventmanager.java

📁 Example Hibernate and Java
💻 JAVA
字号:
/*
 * EventManager.java
 *
 * Created on 28 de marzo de 2007, 16:00
 *
 * To change this template, choose Tools | Template Manager
 * and open the template in the editor.
 */

package events;

import com.sun.net.ssl.internal.ssl.SSLContextImpl;
import org.hibernate.Session;
import java.util.Date;
import util.HibernateUtil;
import java.util.List;

public class EventManager 
{
    public static void main(String[] args) 
    {
        EventManager mgr = new EventManager();
        if (args[0].equals("store")) 
        {
            mgr.createAndStoreEvent("My Event", new Date());
            System.out.println("GRABE");
        }
        else if (args[0].equals("list")) 
        {
            List events = mgr.listEvents();
            for (int i = 0; i < events.size(); i++) 
            {
                Event theEvent = (Event) events.get(i);
                System.out.println("Event: " + theEvent.getTitle() +
                " Time: " + theEvent.getDate());
            }
            
            List persons = mgr.listPersons();
            for(int i = 0; i < persons.size(); i++)
            {
                Person thePerson = (Person) persons.get(i);
                System.out.println("Person: "+ thePerson.getFirstname());
            }
        }
        else if(args[0].equals("addpersontoevent"))
        {
            for(int i = 0; i < 10; i++)
            {
                Long eventId = mgr.createAndStoreEvent("My Event"+i,new Date()); 
                Long personId = mgr.createAndStorePerson("Foo"+i,"Bar"+i);
                mgr.addPersonToEvent(personId, eventId);
                System.out.println("Added person "+personId+i+" to event "+eventId+i);
            }
        }
        else if(args[0].equals("addemailtoperson"))
        {
            for(int i = 0; i < 10; i++)
            {
                Long personId = mgr.createAndStorePerson("Persona "+i,"Apellido");
                mgr.addEmailToPerson(personId, "mailpersona"+i+"@com.ar");
                System.out.println("Added mail mailpersona"+i+"@com.ar to person "+personId);
            }
        }
        
        HibernateUtil.getSessionFactory().close();
    }
    
    private List listEvents() 
    {
        Session session = HibernateUtil.getSessionFactory().getCurrentSession();
        session.beginTransaction();
        List result = session.createQuery("from Event").list();
        session.getTransaction().commit();
        return result;
    }
    
    private List listPersons()
    {
        Session session = HibernateUtil.getSessionFactory().getCurrentSession();
        session.beginTransaction();
        List result = session.createQuery("from Person").list();
        session.getTransaction().commit();
        return result;
    }
    
    private Long createAndStoreEvent(String title, Date theDate) 
    {
        Session session = HibernateUtil.getSessionFactory().getCurrentSession();
        session.beginTransaction();
        Event theEvent = new Event();
        theEvent.setTitle(title);
        theEvent.setDate(theDate);
        session.save(theEvent);        
        session.getTransaction().commit();        
        return theEvent.getId();
    }
    
    private Long createAndStorePerson(String name, String lastname)
    {
        Session session = HibernateUtil.getSessionFactory().getCurrentSession();
        session.beginTransaction();
        Person aPerson = new Person();
        aPerson.setLastname(lastname);
        aPerson.setFirstname(name);
        session.save(aPerson);
        session.getTransaction().commit();   
        return aPerson.getId();
    }
    
    private void addPersonToEvent(Long personId, Long eventId)
    {
        Session session = HibernateUtil.getSessionFactory().getCurrentSession();
        session.beginTransaction();
        /*
        Person aPerson = (Person)session.load(Person.class, personId);
        Event anEvent = (Event)session.load(Event.class,eventId);
        */
        
        Person aPerson = (Person) session.createQuery("select p from Person p left join fetch p.events " +
                "where p.id = :pid").setParameter("pid", personId).uniqueResult();
        
        Event anEvent = (Event) session.load(Event.class, eventId);
        
        session.getTransaction().commit();
             
        aPerson.getEvents().add(anEvent);
        
        Session session2 = HibernateUtil.getSessionFactory().getCurrentSession();
        session2.beginTransaction();
        
        session2.update(aPerson);
        
        session2.getTransaction().commit();
    }
    
    private void addEmailToPerson(Long personId, String emailAddress)
    {
        Session session = HibernateUtil.getSessionFactory().getCurrentSession();
        session.beginTransaction();
        
        Person aPerson = (Person)session.load(Person.class, personId);
        
        aPerson.getEmailaddresses().add(emailAddress);
        
        session.getTransaction().commit();
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -