java dao层通用接口_JAVA通用Dao接口和hibernate的具体实现

基于泛型的通用Dao接口:(重要是在应用hibernate或JPA时运用)

package com.qiujy.dao;

import java.io.Serializable;

import java.util.List;

/**

* 基于泛型的通用Dao接口

*/

public interface GenericDao {

void create(T entity);

void delete(T entity);

void update(T entity);

T findById(Serializable id);

List findAll();

List findList(int pageNo, int pageSize);

int getCountOfAll();

}

hibernate对此泛型Dao接口的运用:

package com.qiujy.dao.hibernate;

import java.io.Serializable;

import java.lang.reflect.ParameterizedType;

import java.util.List;

import org.hibernate.criterion.Projections;

import com.qiujy.common.HibernateUtil;

import com.qiujy.dao.GenericDao;

/**

* Hibernate对泛型通用Dao接口的兑现

*/

public class GenericHibernateDaoImpl implements GenericDao {

private Class clazz;

@SuppressWarnings("unchecked")

public GenericHibernateDaoImpl() {

//透过反照获取T的部类信息范例

this.clazz = (Class)((ParameterizedType)this.getClass().getGenericSuperclass())

.getActualTypeArguments()[零];

}

public void create(T entity) {

HibernateUtil.getSession().save(entity);

}

public void delete(T entity) {

HibernateUtil.getSession().delete(entity);

}

@SuppressWarnings("unchecked")

public void update(T entity) {

//HibernateUtil.getSession().saveOrUpdate(entity);

entity = (T) HibernateUtil.getSession().merge(entity);

}

@SuppressWarnings("unchecked")

public List findAll() {

return HibernateUtil.getSession().createCriteria(clazz).list();

}

@SuppressWarnings("unchecked")

public List findList(int pageNo, int pageSize) {

return HibernateUtil.getSession().createCriteria(clazz)

.setFirstResult((pageNo - 一) * pageSize)

.setMaxResults(pageSize)

.list();

}

public int getCoun

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值