SSH架构BaseDao实现
2015-06-12 09:56
399 查看
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); } }
相关文章推荐
- bet365时时彩网站源码
- 利用共享文件夹实现故障转移群集的仲裁盘
- wget下载整个网站
- 网站会员整合ucenter 实现多站点同步登录方法
- 基于Corosync+Pacemaker+DRBD实现MySQL高可用集群
- 架构中常见的开源模块
- Android NDK (学习笔记九) —— 同时编译多个源文件, 面向多种CPU架构编译
- php WampServer自定义网站根目录
- 怎样建设一个比较好的地方性商业门户网站
- 地方门户网站如何推广
- 网站添加ico图标添加方法
- Zookeeper架构学习(四):ZAB协议
- Nodejs RESTFul架构实践
- .net网站如何配置伪静态
- 【Java 安全技术探索之路系列:J2SE安全架构】之六:安全管理工具
- 网站应用程式架构
- Android相关网站
- (5)LinuxI2C驱动--浅谈LinuxI2C驱动架构
- 资料网站
- 网站建设---最近的一些收获