Dao hibernate 共用

package ;

import java.io.Serializable;
import java.util.List;
import javax.annotation.PostConstruct;
import javax.annotation.Resource;
import org.hibernate.SessionFactory;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
import org.springframework.stereotype.Repository;


@Repository
public class SystemBaseDAO extends HibernateDaoSupport implements ISystemBaseDAO {

	@Resource
	private SessionFactory mySessionFactory;
	
//	private static final Log log = LogFactory.getLog(SystemBaseDAO.class);

	@PostConstruct
	public void InjectedSessionFactory() {
		super.setSessionFactory(mySessionFactory);
	}
	
	@Override
	public int save(Object record) {
//		log.info("new record save:"+record.getClass().getSimpleName()+":"+record.toString());
		return (int) getHibernateTemplate().save(record);
	}

	public void _save(Object record) {
//		log.info("new record save:"+record.getClass().getSimpleName()+":"+record.toString());
		getHibernateTemplate().save(record);
	}

	@Override
	public void attachDirty(Object record, Object old) {
//		log.info("record update:"+record.getClass().getSimpleName()+":"+record.toString());
		getHibernateTemplate().saveOrUpdate(record);
	}

	@Override
	public void delete(Object record) {
		getHibernateTemplate().delete(record);
	}

	@Override
	public Object findById(Class<?> clz, Object id) {
		Object record;
		try {
			record = getHibernateTemplate().get(clz.getName(), Integer.parseInt(id.toString()));
		} catch (Exception e) {
			record = getHibernateTemplate().get(clz.getName(), (Serializable) id);
		}
		return record;
	}

	@Override
	public Object findObjectByHql(String hql) {
		Object obj = null;
		List<?> list = getHibernateTemplate().find(hql);
		if(list != null && list.size() > 0){
			obj = list.get(0);
		}
		return obj;
	}

	@Override
	public List<?> findListByHql(String hql) {
		List<?> list = getHibernateTemplate().find(hql);
		return list;
	}

	@Override
	public List<?> findListByHql(String hql, int pageSize, int pageNo) {
		return getSession().createQuery(hql).setFirstResult((pageNo - 1) * pageSize).setMaxResults(pageSize).list();
	}

	@Override
	public int getTotal(String hql) {
		List<?> list = getSession().createQuery(hql).list();
		if(list != null){
			return list.size();
		}
		return 0;
	}

	@Override
	public List<?> findListBySql(String sql) {
		return getSession().createSQLQuery(sql).list();
	}
	
	/**
	 * 查找表最大序列号
	 */
	public int getIndex(String hql){
		int _id = 0;
		try{
			_id = (Integer)findObjectByHql(hql) + 1;
		}catch(NullPointerException e){
			_id = 1;
		}
		return _id;
	}
	
	public String getMaxIndex(String sql) {
		Object max = getSession().createSQLQuery(sql).uniqueResult();
		 if(max == null) {
			 max = "0";
		 }
		 return max.toString();
	}
	
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值