SSH架构BaseDao实现

package cn.itcast.dao;



import java.io.Serializable;

import java.util.List;



/**

 * BaseDao

 * @author Administrator

 *

 * @param <T>

 */

public interface BaseDao<T> {

    /** 

     * 保存一个对象 

     *  

     * @param o 

     * @return 

     */  

    public Serializable save(T o);  

  

    /** 

     * 删除一个对象 

     *  

     * @param o 

     */  

    public void delete(T o);  

  

    /** 

     * 更新一个对象 

     *  

     * @param o 

     */  

    public void update(T o);  

  

    /** 

     * 保存或更新对象 

     *  

     * @param o 

     */  

    public void saveOrUpdate(T o);  

  

    /** 

     * 查询 

     *  

     * @param hql 

     * @return 

     */  

    public List<T> find(String hql);  

  

    /** 

     * 查询集合 

     *  

     * @param hql 

     * @param param 

     * @return 

     */  

    public List<T> find(String hql, Object[] param);  

  

    /** 

     * 查询集合 

     *  

     * @param hql 

     * @param param 

     * @return 

     */  

    public List<T> find(String hql, List<Object> param);  

  

    /** 

     * 查询集合(带分页) 

     *  

     * @param hql 

     * @param param 

     * @param page 

     *            查询第几页 

     * @param rows 

     *            每页显示几条记录 

     * @return 

     */  

    public List<T> find(String hql, Object[] param, Integer page, Integer rows);  

  

    /** 

     * 查询集合(带分页) 

     *  

     * @param hql 

     * @param param 

     * @param page 

     * @param rows 

     * @return 

     */  

    public List<T> find(String hql, List<Object> param, Integer page, Integer rows);  

  

    /** 

     * 获得一个对象 

     *  

     * @param c 

     *            对象类型 

     * @param id 

     * @return Object 

     */  

    public T get(Class<T> c, Serializable id);  

  

    /** 

     * 获得一个对象 

     *  

     * @param hql 

     * @param param 

     * @return Object 

     */  

    public T get(String hql, Object[] param);  

  

    /** 

     * 获得一个对象 

     *  

     * @param hql 

     * @param param 

     * @return 

     */  

    public T get(String hql, List<Object> param);  

  

    /** 

     * select count(*) from 类 

     *  

     * @param hql 

     * @return 

     */  

    public Long count(String hql);  

  

    /** 

     * select count(*) from 类 

     *  

     * @param hql 

     * @param param 

     * @return 

     */  

    public Long count(String hql, Object[] param);  

  

    /** 

     * select count(*) from 类 

     *  

     * @param hql 

     * @param param 

     * @return 

     */  

    public Long count(String hql, List<Object> param);  

  

    /** 

     * 执行HQL语句 

     *  

     * @param hql 

     * @return 响应数目 

     */  

    public Integer executeHql(String hql);  

  

    /** 

     * 执行HQL语句 

     *  

     * @param hql 

     * @param param 

     * @return 响应数目 

     */  

    public Integer executeHql(String hql, Object[] param);  

  

    /** 

     * 执行HQL语句 

     *  

     * @param hql 

     * @param param 

     * @return 

     */  

    public Integer executeHql(String hql, List<Object> param);  

  

}
package cn.itcast.daoImpl;



import java.io.Serializable;

import java.util.List;



import org.hibernate.Query;

import org.hibernate.Session;

import org.hibernate.SessionFactory;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.stereotype.Repository;



import cn.itcast.dao.BaseDao;



@Repository("BaseDAO")

@SuppressWarnings("all")

/**

 * BaseDaoImpl

 * @author Administrator

 *

 * @param <T>

 */

public class BaseDaoImpl<T> implements BaseDao<T> {

    

    private SessionFactory sessionFactory;

    

    public SessionFactory getSessionFactory() {

        return sessionFactory;

    }



    @Autowired

    public void setSessionFactory(SessionFactory sessionFactory) {

        this.sessionFactory = sessionFactory;

    }



    private Session getCurrentSession() {  

        return sessionFactory.getCurrentSession();  

    }

    

    public Serializable save(T o) {

        return this.getCurrentSession().save(o);

    }



    public void delete(T o) {

        this.getCurrentSession().delete(o);

    }



    public void update(T o) {

        this.getCurrentSession().update(o);

    }



    public void saveOrUpdate(T o) {

        this.getCurrentSession().saveOrUpdate(o);

    }



    public List<T> find(String hql) {

        return this.getCurrentSession().createQuery(hql).list();

    }



    public List<T> find(String hql, Object[] param) {

        Query q = this.getCurrentSession().createQuery(hql);  

        if (param != null && param.length > 0) {  

            for (int i = 0; i < param.length; i++) {  

                q.setParameter(i, param[i]);  

            }  

        }  

        return q.list();

    }



    public List<T> find(String hql, List<Object> param) {

        Query q = this.getCurrentSession().createQuery(hql);  

        if (param != null && param.size() > 0) {  

            for (int i = 0; i < param.size(); i++) {  

                q.setParameter(i, param.get(i));  

            }  

        }  

        return q.list();

    }



    public List<T> find(String hql, Object[] param, Integer page, Integer rows) {

        if (page == null || page < 1) {  

            page = 1;  

        }  

        if (rows == null || rows < 1) {  

            rows = 10;  

        }  

        Query q = this.getCurrentSession().createQuery(hql);  

        if (param != null && param.length > 0) {  

            for (int i = 0; i < param.length; i++) {  

                q.setParameter(i, param[i]);  

            }  

        }  

        return q.setFirstResult((page - 1) * rows).setMaxResults(rows).list();  

    }



    public List<T> find(String hql, List<Object> param, Integer page,

            Integer rows) {

        if (page == null || page < 1) {  

            page = 1;  

        }  

        if (rows == null || rows < 1) {  

            rows = 10;  

        }  

        Query q = this.getCurrentSession().createQuery(hql);  

        if (param != null && param.size() > 0) {  

            for (int i = 0; i < param.size(); i++) {  

                q.setParameter(i, param.get(i));  

            }  

        }  

        return q.setFirstResult((page - 1) * rows).setMaxResults(rows).list();

    }



    public T get(Class<T> c, Serializable id) {

        return (T) this.getCurrentSession().get(c, id);

    }



    public T get(String hql, Object[] param) {

        List<T> l = this.find(hql, param);  

        if (l != null && l.size() > 0) {  

            return l.get(0);  

        } else {  

            return null;  

        }

    }



    public T get(String hql, List<Object> param) {

        List<T> l = this.find(hql, param);  

        if (l != null && l.size() > 0) {  

            return l.get(0);  

        } else {  

            return null;  

        }

    }



    public Long count(String hql) {

        return (Long) this.getCurrentSession().createQuery(hql).uniqueResult();

    }



    public Long count(String hql, Object[] param) {

        Query q = this.getCurrentSession().createQuery(hql);  

        if (param != null && param.length > 0) {  

            for (int i = 0; i < param.length; i++) {  

                q.setParameter(i, param[i]);  

            }  

        }  

        return (Long) q.uniqueResult();

    }



    public Long count(String hql, List<Object> param) {

        Query q = this.getCurrentSession().createQuery(hql);  

        if (param != null && param.size() > 0) {  

            for (int i = 0; i < param.size(); i++) {  

                q.setParameter(i, param.get(i));  

            }  

        }  

        return (Long) q.uniqueResult();

    }



    public Integer executeHql(String hql) {

        return this.getCurrentSession().createQuery(hql).executeUpdate();

    }



    public Integer executeHql(String hql, Object[] param) {

        Query q = this.getCurrentSession().createQuery(hql);  

        if (param != null && param.length > 0) {  

            for (int i = 0; i < param.length; i++) {  

                q.setParameter(i, param[i]);  

            }  

        }  

        return q.executeUpdate();  

    }



    public Integer executeHql(String hql, List<Object> param) {

        Query q = this.getCurrentSession().createQuery(hql);  

        if (param != null && param.size() > 0) {  

            for (int i = 0; i < param.size(); i++) {  

                q.setParameter(i, param.get(i));  

            }  

        }  

        return q.executeUpdate();

    }



}
package cn.itcast.dao;



import cn.itcast.entity.TEmail;



/**

 * EmailDao

 * @author Administrator

 *

 */



public interface TEmailDao {

    public TEmail Login(String LoginName,String Password);

    

    public TEmail FindByEmail(String param);

    

    public Integer count(String param);

    

    public void saveOrUpdate(TEmail T);

    

    public void save(TEmail T);

    

    public void update(TEmail T);

    

    public TEmail get(Integer id);

}
package cn.itcast.daoImpl;



import cn.itcast.dao.BaseDao;

import cn.itcast.dao.TEmailDao;

import cn.itcast.entity.TEmail;



/**

 * EmailDao实现类调用BaseDao实现EmailDao中的方法

 * @author Administrator

 *

 */

public class TEmailDaoImpl implements TEmailDao {

    private BaseDao<TEmail> baseDao;

    

    public BaseDao<TEmail> getBaseDao() {

        return baseDao;

    }



    public void setBaseDao(BaseDao<TEmail> baseDao) {

        this.baseDao = baseDao;

    }



    public TEmail Login(String LoginName,String Password) {

        String hql="From TEmail where loginName=? and password=?";

        return baseDao.get(hql, new Object[]{LoginName,Password});

    }



    public TEmail FindByEmail(String param) {

        String hql="From TEmail where email=?";

        return baseDao.get(hql, new Object[]{param});

    }



    public Integer count(String param) {

        String hql="Select count(*) From TEmail where email=?";

        Long s=baseDao.count(hql, new Object[]{param});

        return s.intValue();

    }

    

    public void saveOrUpdate(TEmail T){

        baseDao.saveOrUpdate(T);

    }

    

    public void save(TEmail T){

        baseDao.save(T);

    }

    

    public void update(TEmail T){

        baseDao.update(T);

    }



    public TEmail get(Integer id) {

        return baseDao.get(TEmail.class, id);

    }

    

    

}

 

你可能感兴趣的:(seda)