创建basedao接口
package cn.kcn.dao;
import java.util.List;
/**
*定义了一个类型T,代表任意类型;
* (1)任意类型使用大写字母表示,不一定是T
* @author KCN
*
* @param <T>
*/
public interface BaseDao<T> {
void add(T t);
void update(T t);
void delete(T t);
T findOne(int id);
List<T> findAll();
}
创建basedao接口的实现类,实现crud操作
package cn.kcn.dao;
import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;
import java.util.List;
import org.springframework.orm.hibernate5.support.HibernateDaoSupport;
@SuppressWarnings(
"all")
public class BaseDaoImpl<T> extends HibernateDaoSupport implements BaseDao<T> {
private Class pClass;
public BaseDaoImpl() {
Class clazz =
this.getClass();
Type type = clazz.getGenericSuperclass();
ParameterizedType ptype = (ParameterizedType) type;
Type[] types = ptype.getActualTypeArguments();
Class tclass = (Class) types[
0];
this.pClass = tclass;
}
public void add(T t) {
this.getHibernateTemplate().save(t);
}
public void update(T t) {
this.getHibernateTemplate().update(t);
}
public void delete(T t) {
this.getHibernateTemplate().delete(t);
}
public T findOne(
int id) {
return (T)
this.getHibernateTemplate().get(pClass, id);
}
public List<T> findAll() {
return (List<T>)
this.getHibernateTemplate().find(
"from "+pClass.getSimpleName());
}
}
转载请注明原文地址: https://ju.6miu.com/read-670496.html