package cfw.dao.impl;
import java.io.Serializable;
import java.lang.reflect.ParameterizedType;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import javax.annotation.Resource;
import org.apache.commons.lang.StringEscapeUtils;
import org.apache.poi.ss.formula.functions.T;
import org.hibernate.Query;
import org.hibernate.SessionFactory;
import org.springframework.orm.hibernate3.HibernateCallback;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
import cfw.dao.IBaseDao;
@SuppressWarnings("hiding")
public class BaseDao<T> extends HibernateDaoSupport implements IBaseDao<T>{
@Resource(name = "sessionFactory")
public void setSuperSessionFactory(SessionFactory sessionFactory) {
super.setSessionFactory(sessionFactory);
}
private Class<T> clazz;
@SuppressWarnings("unchecked")
public BaseDao() {
clazz =(Class<T>) ((ParameterizedType) getClass().getGenericSuperclass()).getActualTypeArguments()[0];
}
@Override
public T findById(Serializable id) {
return this.getHibernateTemplate().get(clazz, id);
}
@Override
public void update(T obj) {
// TODO Auto-generated method stub
this.getHibernateTemplate().update(obj);
}
@Override
public void save(T obj) {
this.getHibernateTemplate().saveOrUpdate(obj);
}
@SuppressWarnings("unchecked")
@Override
public T findObject(Map<String, Object> param) {
final StringBuffer hsql = new StringBuffer();
hsql.append("from " + clazz.getSimpleName() + " where 1=1");
if(param != null)
{
Iterator<String> it = param.keySet().iterator();
while(it.hasNext())
{
String field = it.next();
Object value = param.get(field);
if(value != null && !value.equals(""))
{
hsql.append(" and " + field + "='" + StringEscapeUtils.escapeSql(value.toString()) +"'");
}else if (field != null && value == null) {
hsql.append(" and " + field);
}
}
List<T> result = (List<T>) getHibernateTemplate().execute(
new HibernateCallback<T>() {
public T doInHibernate(org.hibernate.Session session)
throws org.hibernate.HibernateException {
Query query = session.createQuery(hsql.toString());
List<T> rows = query.list();
return (T) rows;
}
});
if (result !=null && result.size()>0) {
return result.get(0);
}
}
return null;
}
}
最近下载更多
aihdgt LV1
2023年6月14日
a6134034 LV2
2023年2月24日
蓝哈哈 LV1
2022年5月24日
不懂不懂 LV1
2022年5月18日
axiaobai LV5
2022年2月21日
mudingc木钉 LV30
2021年6月11日
1161371062 LV1
2021年5月27日
迷彩风情 LV26
2021年3月4日
Hadoop_CPU LV6
2020年12月22日
2869580060 LV10
2020年5月14日

最近浏览