ssh框架中的basedao
2016-05-26 08:58
274 查看
package com.zjj.dao.base; import java.io.Serializable; import java.math.BigDecimal; import java.util.List; import java.util.Map; import org.hibernate.Query; import org.hibernate.SQLQuery; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Repository; @Repository("baseDao") public class BaseDao<T> implements IBaseDao<T> { private SessionFactory sessionFactory; public SessionFactory getSessionFactory() { return sessionFactory; } @Autowired public void setSessionFactory(SessionFactory sessionFactory) { this.sessionFactory = sessionFactory; } public Session getCurrentSession() { return sessionFactory.getCurrentSession(); } @Override public Serializable Save(T t) { return this.getCurrentSession().save(t); } @Override public T Get(String hql) { Query query = this.getCurrentSession().createQuery(hql); List<T> l = query.list(); if (l != null && l.size() > 0) { return l.get(0); } return null; } @Override public T Get(String hql, Map<String, Object> params) { Query query = this.getCurrentSession().createQuery(hql); if (params != null && !params.isEmpty()) { for (String key : params.keySet()) { query.setParameter(key, params.get(key)); } } List<T> l = query.list(); if (l != null && l.size() > 0) { return l.get(0); } return null; } @Override public void delete(T t) { this.getCurrentSession().delete(t); } @Override public void update(T t) { this.getCurrentSession().merge(t); } @Override public void delete(String hql) { update(hql); } @Override public void update(String hql) { Query query = this.getCurrentSession().createQuery(hql); query.executeUpdate(); } @Override public void saveOrUpdate(T t) { this.getCurrentSession().saveOrUpdate(t); } @Override public List<T> find(String hql) { Query query = this.getCurrentSession().createQuery(hql); return query.list(); } @Override public List<T> find(String hql, Map<String, Object> params) { Query query = this.getCurrentSession().createQuery(hql); if (params != null && !params.isEmpty()) { for (String key : params.keySet()) { query.setParameter(key, params.get(key)); } } return query.list(); } @Override public List<T> find(String hql, Map<String, Object> params, Integer page, Integer rows) { Query query = this.getCurrentSession().createQuery(hql); if (params != null && !params.isEmpty()) { for (String key : params.keySet()) { if (params.get(key).getClass().getName() .equals("java.lang.String")) { query.setString(key, params.get(key).toString()); } else { query.setParameter(key, params.get(key)); } } } return query.setFirstResult((page - 1) * rows).setMaxResults(rows) .list(); } @Override public List<T> find(String hql, Integer page, Integer rows) { Query query = this.getCurrentSession().createQuery(hql); return query.setFirstResult((page - 1) * rows).setMaxResults(rows) .list(); } @Override public Long count(String hql) { Query query = this.getCurrentSession().createQuery(hql); return ((Number) query.uniqueResult()).longValue(); } @Override public String getField(String hql) { Query query = this.getCurrentSession().createQuery(hql); return (String) query.list().get(0); } @Override public List<String> getFieldList(String hql) { Query quer 4000 y = this.getCurrentSession().createQuery(hql); return query.list(); } @Override public Long count(String hql, Map<String, Object> params) { Query query = this.getCurrentSession().createQuery(hql); if (params != null && !params.isEmpty()) { for (String key : params.keySet()) { if (params.get(key).getClass().getName() .equals("java.lang.String")) { query.setString(key, params.get(key).toString()); } else { query.setParameter(key, params.get(key)); } } } return ((Number) query.uniqueResult()).longValue(); } @Override public BigDecimal bigDemical(String sql) { SQLQuery query = this.getCurrentSession().createSQLQuery(sql); return (BigDecimal) query.list().get(0); } @Override public List<T> find(String hql, List<Object> listPara) { // TODO Auto-generated method stub Query query = this.getCurrentSession().createQuery(hql); if (listPara != null && !listPara.isEmpty()) { for (int i = 0; i < listPara.size(); i++) { query.setParameter(i, listPara.get(i)); } } return query.list(); } @Override public int getNextId(String sequenceName) { String sql = "select " + sequenceName + ".nextval from dual"; SQLQuery query = this.getCurrentSession().createSQLQuery(sql); return ((BigDecimal) query.uniqueResult()).intValue(); } @Override public String getOneField(String sql) { SQLQuery query = this.getCurrentSession().createSQLQuery(sql); return query.uniqueResult().toString(); } @Override public List<T> getResult(String sql, Integer page, Integer rows) { SQLQuery query = this.getCurrentSession().createSQLQuery(sql); return query.setFirstResult((page - 1) * rows).setMaxResults(rows).list(); } @Override public List getValueOfResult(String sql) { // TODO Auto-generated method stub SQLQuery query = this.getCurrentSession().createSQLQuery(sql); return query.list(); } }
相关文章推荐
- 2 Add Two Numbers
- Codeforces Round #353 (Div. 2) B.Restoring Painting
- ARC_xp_20160526
- CodeForces 592B
- 求素数问题
- UVa1368 DNA Consensus String
- BST二叉搜索树的查找算法
- How to debug .NET Core RC2 app with Visual Studio Code on Windows?
- c#简易反射调用泛型方法
- 第13周-项目1-动物这样叫(3)
- Java用类和对象,构造方法来实现超市管理系统
- Android界面View及ViewGroup
- Spark运行原理解析
- (4.1.5.4)App内广播LocalBroadcastManager局部通知管理器
- Java开发常用的在线工具
- 10.Spark Streaming源码分析:Receiver数据接收全过程详解
- PHP新的垃圾回收机制:Zend GC详解
- 《上古天真论》第五讲文字版
- Python Dict用法
- s5pv210 datasheet_system_audio_etc