首页 > 学院 > 开发设计 > 正文

SSH架构BaseDao实现

2019-11-15 00:34:07
字体:
来源:转载
供稿:网友
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);    }        }


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表