commonDao

 

 

--------------------------------------------------------BaseDAO----------------------------------------------

 

package org.taink.common;

import java.io.Serializable;
import java.util.List;

public interface BaseDAO<K extends Serializable, V> {
   
        /**
         * 查询所有内容
         * @return 返回实体集合
         */
        List<V> findAll();
       
        /**
         * 按HQL和条件查询数据
         * @param hql 执行HQL的语句
         * @param params 传入参数
         * @return 返回实体集合
         */
        List<V> findList(String hql, Object...  params);
       
        /**
         * 按实体ID查找
         * @param id 实体类的主键
         * @return 返回实体类
         */
        V findById(K id);
       
        /**
         * 向数据库增加一个实体类
         * @param entity 实体类
         */
        void addEntity(V entity);
       
        /**
         * 向数据库增加以List封装的实体类
         * @param entities
         */
        void addEntityes(List<V> entities);
       
        /**
         * 删除单个实体对象
         * @param entity
         */
        void delete(V entity);
       
        /**
         * 同时删除多个实体对象
         * @param entities
         */
        void delete(List<V> entities);
       
        /**
         * 修改单个实体对象
         * @param entity
         */
        void update(V entity);
       
        /**
         * 同时修改多个实体对象
         * @param entities
         */
        void update(List<V> entities);
}

 

--------------------------------------------BaseDAOImpl----------------------------------------------------------

 

package com.toggery.dao.impl;

import java.io.Serializable;
import java.lang.reflect.ParameterizedType;
import java.util.List;

import org.springframework.orm.hibernate3.support.HibernateDaoSupport;

import com.toggery.dao.BaseDAO;

public class BaseDAOSupport<K extends Serializable, V> extends HibernateDaoSupport implements BaseDAO<K ,V> {

    @Override
    public void addEntity(V entity) {
            getHibernateTemplate().save(entity);
    }

    @Override
    public void addEntityes(List<V> entities) {
            for (V  entity : entities) {
                     getHibernateTemplate().save(entity);
            }
    }

    @Override
    public void delete(V entity) {
            getHibernateTemplate().delete(entity);
    }

    @Override
    public void delete(List<V> entities) {
            for (V  entity : entities) {
                     getHibernateTemplate().delete(entity);
            }
    }

    @SuppressWarnings("unchecked")
    @Override
    public List<V> findAll() {
        return getHibernateTemplate().loadAll(getEntityType());
    }

    @SuppressWarnings("unchecked")
    @Override
    public V findById(K id) {
        return (V) getHibernateTemplate().get(getEntityType(), id);
    }
   
    @SuppressWarnings("unchecked")
    private Class<V> getEntityType(){
        return (Class<V>) ((ParameterizedType)getClass().getGenericSuperclass()).getActualTypeArguments()[1];
    }

    @SuppressWarnings("unchecked")
    @Override
    public List<V> findList(String hql, Object... params) {
        //return (List<V>) getHibernateTemplate().get(hql, params);
       
        return getHibernateTemplate().find(hql,params);
    }

    @Override
    public void update(V entity) {
            getHibernateTemplate().update(entity);
    }

    @Override
    public void update(List<V> entities) {
            for (V  entity : entities) {
                 getHibernateTemplate().update(entity);
            }
    }

}

你可能感兴趣的:(DAO,orm)