Spring Dao Demo : Spring Hibernate « Hibernate « Java






Spring Dao Demo

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

import java.util.*;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.hibernate.*;
import org.hibernate.criterion.*;

public class Main {
  
  
  public static void main(String[] args) {
    HibernateUtil.setup("create table EVENTS ( uid int, name VARCHAR, start_Date date, duration int);");
    
    // hibernate code start
        ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext("context.xml");
        EventSpringDao eventDao = (EventSpringDao) ctx.getBean("eventDao", EventSpringDao.class);
        Event event = new Event();
        event.setName("Name");
        eventDao.saveOrUpdate(event);


        HibernateUtil.checkData("select uid, name from events");        
        eventDao.delete(event);        

        
    // hibernate code end
  }
  
}


/////////////////////////////////////////////////////////////////////////
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;

import java.util.List;

public abstract class AbstractSpringDao  extends HibernateDaoSupport{

    public AbstractSpringDao() { }

    protected void saveOrUpdate(Object obj) {
        getHibernateTemplate().saveOrUpdate(obj);
    }

    protected void delete(Object obj) {
        getHibernateTemplate().delete(obj);
    }

    protected Object find(Class clazz, Long id) {
        return getHibernateTemplate().load(clazz, id);
    }

    protected List findAll(Class clazz) {
        return getHibernateTemplate().find("from " + clazz.getName());
    }
}




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

import java.util.List;

public class EventSpringDao extends AbstractSpringDao{
    public EventSpringDao(){}

    public Event find(Long id){
        return (Event) super.find(Event.class, id);
    }

    public void saveOrUpdate(Event event){
        super.saveOrUpdate(event);
    }

    public void delete(Event event){
        super.delete(event);
    }

    public List findAll(){
        return super.findAll(Event.class);
    }
}



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

<?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="uid" type="long">
            <generator class="increment"/>
        </id>
        <property name="name" type="string"/>
        <property name="startDate" column="start_date" type="date"/>
        <property name="duration" type="integer"/>
    </class>
</hibernate-mapping>




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

import java.io.Serializable;
import java.util.Date;
import java.util.Set;
import java.util.LinkedHashSet;

public class Event implements Serializable {
    private Long id;
    private int duration;
    private String name;
    private Date startDate;

    public Event() {

    }

    public Event(String name) {
        this.name = name;
    }

    /**
     * @hibernate.id generator-class="native" column="uid"
     * @return
     */
    public Long getId() { return id; }
    public void setId(Long id) { this.id = id; }

    /**
     * @hibernate.property column="name"
     * @return
     */
    public String getName() { return name; }
    public void setName(String name) { this.name = name;   }

    /**
     * @hibernate.property column="start_date"
     * @return
     */
    public Date getStartDate() { return startDate; }
    public void setStartDate(Date startDate) { this.startDate = startDate; }

    /**
     * @hibernate.property column="duration"
     * @return
     */
    public int getDuration() { return duration; }
    public void setDuration(int duration) { this.duration = duration; }

}



/////////////////////////////////////////////////////////////////////////
/**
 * Represents Exceptions thrown by the Data Access Layer.
 */
public class DataAccessLayerException extends RuntimeException {
    public DataAccessLayerException() {
    }

    public DataAccessLayerException(String message) {
        super(message);
    }

    public DataAccessLayerException(Throwable cause) {
        super(cause);
    }

    public DataAccessLayerException(String message, Throwable cause) {
        super(message, cause);
    }
}


           
       








Related examples in the same category

1.Hibernate Spring Hibernate Template Find
2.Spring Hibernate Template Save Or Update
3.Spring Dao Injection
4.Hibernate Spring Environment Setup
5.Hibernate Spring Hibernate Callback Demo
6.Spring Hibernate Template Execute