• 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);
        }
        
        
    }
  • 相关阅读:
    DotnetCore 使用Jwks验证JwtToken签名
    HashCode
    C# RedisRateLimiter
    Centos7 使用Dockerfile 制作自己的Dotnetcore程序镜像
    ES6 HttpApplication Middleware
    请转发!简单2分钟制作无接触式小区进出微信登记表!全免费!数据安全!所有数据均存在创建人登录的QQ腾讯文档里!
    理解虚基类、虚函数与纯虚函数的概念
    不无道理
    乔布斯:不要为明天忧虑!
    【心态不好,人生易老】
  • 原文地址:https://www.cnblogs.com/HYXJavaweb/p/4570956.html
Copyright © 2020-2023  润新知