HibernateTemplate作用:从字面上意思我们就知道他是一个模板,然后我们又知道hibernate是一个对象关系映射的框架,所以我们很容易联想到他的功能就是将Hibernate 的持久层访问模板化。或者我们直接叫他为hibernate的持久化模板。
HibernateTemplate用法:
1、直接用,在实现类中继承HibernateDaoSupport类,然后this.getHibernateTemplate()直接获取到HibernateTemplate对象,就可以调用HibernateTemplate中封装的一些方法了。
2、不过这样用起来在系统中比较麻烦,每次都要在DAO的实现类中继承HibernateDaoSupport,我们可以对HibernateTemplate进行再次封装,java嘛都是这样封装 封装 继承 继承 抽象抽象 然后就多态了 。
下面我就直接上代码了 --对HibernateTemplate的再次封装实现公用的增删改查调用
<!--导入的架包-->
import java.io.Serializable;
import java.util.List;
public interface GenericDAO<T, ID extends Serializable> {
List<T> find(T var1);
ID save(T var1);
void remove(T var1);
void update(T var1);
/。。。。。。可以写其它一些系统业务需要的方法 ,这里我就只写增删改查。。。。。。。/
}
<!--实现类-->
<!--架包-->
import java.io.Serializable;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
import java.util.List;
public class GenericDAOSpringImpl<T, ID extends Serializable> extends HibernateDaoSupport implements GenericDAO<T, ID> {
public ID save(T newInstance) {
Serializable id = this.getHibernateTemplate().save(newInstance);
this.getHibernateTemplate().flush();//强行的写入数据库
return id;
}
public void remove(T instance) {
this.getHibernateTemplate().delete(instance);
this.getHibernateTemplate().flush();
}
public void update(T instance) {
this.getHibernateTemplate().update(instance);
this.getHibernateTemplate().flush();
}
public List<T> find(T instance) {
return this.getHibernateTemplate().findByExample(instance);
}
}