java ssh DAO层增删改父类
刘振兴
代码分享
2016年09月20日
27812
5条评论
增加代码的复用性,减少代码的书写量
接口
import java.util.List;
/**
* 通用Dao接口
* @author zhaoqx
*
*/
public interface IBaseDao {
/**
* 添加
*/
public void save(T entity);
/**
* 根据id删除
*/
public void delete(Long id);
/**
* 根据id修改
*/
public void update(T entity);
/**
* 根据id查询
*/
public T getById(Long id);
/**
* 一次查询多个对象
*/
public List getByIds(Long[] ids);
/**
* 查询所有
*/
public List findAll();
}
实现
import flect.ParameterizedType;
import flect.Type;
import java.util.List;
import javax.annotation.Resource;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import hibernate3.HibernateTemplate;
import cn.itcast.oa.domain.Book;
/**
* 通用Dao实现
* @author zhaoqx
*
* @param
*/
@SuppressWarnings("unchecked")
public class BaseDaoImpl implements IBaseDao {
@Resource
private SessionFactory sessionFactory;
private Class clazz;
public BaseDaoImpl() {
//获得实体类型
ParameterizedType genericSuperclass = (ParameterizedType) Class().getGenericSuperclass();//获得真正的父类
Type[] types = ActualTypeArguments();
clazz = (Class) types[0];
}
public void save(T entity) {
getSession().save(entity);
}
public void delete(Long id) {
getSession().delete(getSession().get(clazz, id));
}
public void update(T entity) {
getSession().update(entity);
}
public List findAll() {
String hql = "FROM " + SimpleName();
return getSession().createQuery(hql).list();
}
public T getById(Long id) {
return (T) getSession().get(clazz, id);
}
public List getByIds(Long[] ids) {
String hql = "FROM " + SimpleName() + " WHERE id in (:ids)";
Query query = getSession().createQuery(hql);
query.setParameterList("ids", ids);//一次赋值多个
return query.list();
}
public Session getSession(){
CurrentSession();
}
}
评论一下
赞助本站
版权申明:此文如未标注转载均为本站原创,自由转载请表明出处《IT技术宅》。
本文网址:.html
本文发布于:2024-01-28 17:02:38,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/17064325618917.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |