package com.hfpmp.commonmodel.dao.impl;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Repository;
import javax.annotation.Resource;
import java.io.Serializable;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
/**
* 数据库操作支持接口
*
* @param <T>
* @author noob
* 2010-1-6下午01:33:13
*/
@Repository("baseDao")
public class BaseDao<T, ID extends Serializable> {
@Resource
public SessionFactory sessionFactory;
/**
* 日志
*/
private static final Logger logger = LoggerFactory.getLogger(BaseDao.class);
public Session getSession() {
return sessionFactory.getCurrentSession();
}
public void setSessionFactory(SessionFactory sessionFactory) {
this.sessionFactory = sessionFactory;
}
public T getBean(Class<T> clazz, ID id) {
T entity;
entity = (T) getSession().get(clazz, id);
return entity;
}
public void updateBean(T bean) {
this.getSession().update(bean);
}
public void delBean(T bean) {
this.getSession().delete(bean);
}
public void delId(ID id, Class<T> clazz) {
delBean(getBean(clazz, id));
}
public void saveBean(T bean) {
this.getSession().save(bean);
}
public void saveOrUpdateBean(T bean) {
this.getSession().saveOrUpdate(bean);
}
public List<T> getBeanListSql(String sql, Map<String, Object> map, Class<T> clazz) {
Query query = this.getSession().createSQLQuery(sql).addEntity(clazz);
for (Iterator it = map.entrySet().iterator(); it.hasNext(); ) {
Map.Entry entry = (Map.Entry) it.next();
query.setParameter((String) entry.getKey(), entry.getValue());
}
return query.list();
}
public void updateSql(String sql, Map<String, Object> map) {
Query query = this.getSession().createSQLQuery(sql);
for (Iterator it = map.entrySet().iterator(); it.hasNext(); ) {
Map.Entry entry = (Map.Entry) it.next();
query.setParameter((String) entry.getKey(), entry.getValue());
}
}
/*
* 强制使session中的缓存提交到数据库,是数据库数据即时同步到数据库
*/
public void flush() {
getSession().flush();
}
/*
* 清除session中的缓存
*/
public void clear() {
getSession().clear();
}
}
BaseDao
最新推荐文章于 2018-09-17 12:30:24 发布