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日