Java/Hibernate/Retrieve

Материал из Java эксперт
Перейти к: навигация, поиск

Simple Retrieve

/////////////////////////////////////////////////////////////////////////
import java.util.Date;
import org.hibernate.Session;
import org.hibernate.Transaction;
public class SimpleRetrieveTest {
  
  
  public static void main(String[] args) {
    HibernateUtil.setup("create table EVENTS ( EVENT_ID int, EVENT_DATE date, title VARCHAR);");
    // hibernate code start
    Session session = HibernateUtil.currentSession();
    Transaction tx = session.beginTransaction();
    Event theEvent = new Event();
    theEvent.setTitle("My Event");
    theEvent.setDate(new Date());
    session.save(theEvent);
    
    tx.rumit();
    HibernateUtil.closeSession();
    HibernateUtil.sessionFactory.close();
        // saved then retrieve it
    session = HibernateUtil.currentSession();
    tx = session.beginTransaction();
    Event e = (Event)session.get(Event.class, new Long(1));
    System.out.println(e);
    
    tx.rumit();
    HibernateUtil.closeSession();
    HibernateUtil.sessionFactory.close();
    // hibernate code end
    
  
    HibernateUtil.checkData("select * from events;");
  }
}

/////////////////////////////////////////////////////////////////////////
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
        "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
        "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
    <class name="Event" table="EVENTS">
        <id name="id" column="EVENT_ID">
            <generator class="increment"/>
        </id>
        <property name="date" type="timestamp" column="EVENT_DATE"/>
        <property name="title"/>
    </class>


    <class name="EventWithAttendee" table="eventwithattendee">
        <id name="id" column="uid" type="long" unsaved-value="null">
            <generator class="native"/>
        </id>
        <property name="name" type="string" length="100"/>
        <property name="startDate" column="start_date"
                  type="date"/>
        <property name="duration" type="integer"/>
        <many-to-one name="location" column="location_id"
                     class="Location"/>
        <set name="attendees" cascade="all">
            <key column="event_id"/>
            <one-to-many class="EventAttendee"/>
        </set>
    </class>
    <class name="EventAttendee" table="attendees">
        <id name="id" column="uid" type="long">
            <generator class="native"/>
        </id>
        <property name="firstName" type="string" length="20"/>
        <property name="lastName" type="string" length="20"/>
    </class>
    <class name="Location" table="locations">
        <id name="id" column="uid" type="long">
            <generator class="native"/>
        </id>
        <property name="name" type="string"/>
        <property name="address" type="string"/>
    </class>
</hibernate-mapping>


/////////////////////////////////////////////////////////////////////////

import java.util.Date;
public class Event {
  private Long id;
  private String title;
  private Date date;
  Event() {
  }
  public Long getId() {
    return id;
  }
  private void setId(Long id) {
    this.id = id;
  }
  public Date getDate() {
    return date;
  }
  public void setDate(Date date) {
    this.date = date;
  }
  public String getTitle() {
    return title;
  }
  public void setTitle(String title) {
    this.title = title;
  }
  public String toString() {
    return "ID:" + id + "\nTitle:" + title + "\nDate:" + date;
  }
}

/////////////////////////////////////////////////////////////////////////
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
        "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
        "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
    <session-factory>
        <!-- Database connection settings -->
        <property name="connection.driver_class">org.hsqldb.jdbcDriver</property>
        <property name="connection.url">jdbc:hsqldb:data/tutorial</property>
        <property name="connection.username">sa</property>
        <property name="connection.password"></property>
        <!-- JDBC connection pool (use the built-in) -->
        <property name="connection.pool_size">1</property>
        <!-- SQL dialect -->
        <property name="dialect">org.hibernate.dialect.HSQLDialect</property>
        <!-- Echo all executed SQL to stdout -->
        <property name="show_sql">true</property>
        <mapping resource="Event.hbm.xml"/>
    </session-factory>
</hibernate-configuration>