package com.bcxin.survey.dao;
import com.bcxin.survey.utils.CollectionUtil;
import com.bcxin.survey.utils.SpringContextUtil;
import org.hibernate.Query;
import org.hibernate.SQLQuery;
import org.hibernate.SessionFactory;
import org.hibernate.transform.Transformers;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
/**
*
* 查询帮助类,重点关注sql查询
*
* @author LuoPeng
* @date 2016年12月14日 下午9:14:00
* @注意事项
*
*/
public class QueryHelper {
private static SessionFactory SESSION_FACTORY;
public static SessionFactory getSessionFactory() {
if (SESSION_FACTORY == null) {
SESSION_FACTORY = (SessionFactory) SpringContextUtil.getBean("sessionFactory");
}
return SESSION_FACTORY;
}
public static List extends Object> findList(String hql) {
try {
return QueryHelper.findList(hql, null);
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
@SuppressWarnings("unchecked")
public static List extends Object> findList(String hql,int start,int end) {
try {
Query query = getSessionFactory().getCurrentSession().createQuery(hql);
return query.setFirstResult(start).setMaxResults(end).list();
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
@SuppressWarnings("unchecked")
public static List extends Object> findList(String hql, Map paramMap) {
try {
Query query = getSessionFactory().getCurrentSession().createQuery(hql);
if (paramMap != null && paramMap.size() != 0) {
Iterator iter = paramMap.keySet().iterator();
while (iter.hasNext()) {
String key = iter.next();
Object param = paramMap.get(key);
query.setParameter(key, param);
}
}
return query.list();
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
@SuppressWarnings("unchecked")
public static List extends Object> findList(String hql,
Map paramMap, Integer pageIndex, Integer pageSize) {
try {
Query query = getSessionFactory().getCurrentSession().createQuery(
hql);
query.setFirstResult(pageIndex);
query.setMaxResults(pageSize);
if (paramMap != null && paramMap.size() != 0) {
Iterator iter = paramMap.keySet().iterator();
while (iter.hasNext()) {
String key = iter.next();
Object param = paramMap.get(key);
query.setParameter(key, param);
}
}
return query.list();
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
@SuppressWarnings("unchecked")
public static List extends Object> findList1(String sql,
Map paramMap, Integer pageIndex, Integer pageSize) {
try {
Query query = getSessionFactory().getCurrentSession().createSQLQuery(sql)
.setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP);
query.setFirstResult(pageIndex);
query.setMaxResults(pageSize);
if (paramMap != null && paramMap.size() != 0) {
Iterator iter = paramMap.keySet().iterator();
while (iter.hasNext()) {
String key = iter.next();
Object param = paramMap.get(key);
query.setParameter(key, param);
}
}
return query.list();
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
public static Object uniqueResult(String hql, Map paramMap) {
try {
Query query = getSessionFactory().getCurrentSession().createQuery(hql);
if (paramMap != null && paramMap.size() != 0) {
Iterator iter = paramMap.keySet().iterator();
while (iter.hasNext()) {
String key = iter.next();
Object param = paramMap.get(key);
query.setParameter(key, param);
}
}
return ((Number)query.iterate().next()).intValue();
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
@SuppressWarnings("unchecked")
public static List