Java/Hibernate/Retrieve

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

Simple Retrieve

   <source lang="java">

///////////////////////////////////////////////////////////////////////// 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>
       
       <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>
       
       <property name="connection.pool_size">1</property>
       
       <property name="dialect">org.hibernate.dialect.HSQLDialect</property>
       
       <property name="show_sql">true</property>
       <mapping resource="Event.hbm.xml"/>
   </session-factory>

</hibernate-configuration>

      </source>