Subscribe

RSS Feed (xml)

Powered By

Skin Design:
Free Blogger Skins

Powered by Blogger

Friday, November 23, 2007

code for Spring Dao Injection in java

import java.util.*;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.orm.hibernate3.HibernateTemplate;
import org.springframework.orm.hibernate3.HibernateCallback;

import java.sql.*;
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

EventSpringDao eventDao = null;
Event event = new Event();
event.setName("Name");

eventDao = DaoRegistry.getEventDao();
eventDao.saveOrUpdate(event);


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


// hibernate code end
}

}


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

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.hibernate.SessionFactory;

public class DaoRegistry {
private static ApplicationContext ctx;

static {
ctx = new ClassPathXmlApplicationContext("context.xml");
}

/**
* Private to make this a singleton.
*/
private DaoRegistry(){

}

public static SessionFactory getSessionFactory(){
return (SessionFactory) ctx.getBean("factory", SessionFactory.class);
}

public static EventSpringDao getEventDao(){
return (EventSpringDao)ctx.getBean("eventDao", EventSpringDao.class);
}
}




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

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);
}
}



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

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());
}
}



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







org.hsqldb.jdbcDriver


jdbc:hsqldb:data/tutorial


sa








Event.hbm.xml




org.hibernate.dialect.HSQLDialect
false













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

"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">






org.hsqldb.jdbcDriver
jdbc:hsqldb:data/tutorial
sa



1


org.hibernate.dialect.HSQLDialect


true





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

"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">














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

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);
}
}

No comments: