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