Base类

来源:互联网 发布:网站模板需要源码吗 编辑:程序博客网 时间:2024/05/17 02:33
IBaseDao



import java.io.Serializable;
import java.util.List;

import org.springframework.stereotype.Repository;

@Repository
public interface IBaseDao<T> {

    T get(Serializable id);

    T load(Serializable id);

    void save(T o);

    void update(T o);

    void deleteById(Serializable id);

    void saveOrUpdate(T o);

    void delete(T entity);

    void deleteByHql(String hql);

    List<T> getObjects();

    List find(String queryString);

    List find(String queryStrin, Object value);

    List find(String queryString, Object[] value);

    void initialize(T o);
}

BaseDaoHibernate


import java.io.Serializable;
import java.lang.reflect.ParameterizedType;
import java.util.List;

import org.hibernate.Query;
import org.hibernate.Session;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.orm.hibernate3.HibernateCallback;
import org.springframework.orm.hibernate3.HibernateTemplate;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;

import com.dragonsoft.dao.IBaseDao;

public class BaseDaoHibernate<T> extends HibernateDaoSupport implements
        IBaseDao<T> {

    @Autowired
    private JdbcTemplate jdbcTemplate;

    protected Class<T> entityClass;

    public BaseDaoHibernate() {
        entityClass = (Class<T>) ((ParameterizedType) getClass()
                .getGenericSuperclass()).getActualTypeArguments()[0];
    }

    @Override
    public T get(Serializable id) {
        // TODO Auto-generated method stub
        return getHibernateTemplate().get(entityClass, id);
    }

    @Override
    public T load(Serializable id) {
        // TODO Auto-generated method stub
        return getHibernateTemplate().load(entityClass, id);
    }

    @Override
    public void save(T o) {
        // TODO Auto-generated method stub
        getHibernateTemplate().save(o);
    }

    @Override
    public void update(T o) {
        // TODO Auto-generated method stub
        getHibernateTemplate().update(o);
    }

    @Override
    public void deleteById(Serializable id) {
        // TODO Auto-generated method stub
        T x = get(id);
        delete(x);
    }

    @Override
    public void saveOrUpdate(T o) {
        // TODO Auto-generated method stub
        getHibernateTemplate().saveOrUpdate(o);
    }

    @Override
    public void delete(T entity) {
        // TODO Auto-generated method stub
        this.getHibernateTemplate().delete(entity);
    }

    @Override
    public void deleteByHql(final String hql) {
        // TODO Auto-generated method stub
        HibernateCallback callBack = new HibernateCallback() {
            @Override
            public Object doInHibernate(Session session) {
                Query queryObject = session.createQuery(hql);
                int i = queryObject.executeUpdate();
                return new Integer(i);
            }
        };
        getHibernateTemplate().execute(callBack);
    }

    @Override
    public List<T> getObjects() {
        // TODO Auto-generated method stub
        return getHibernateTemplate().loadAll(entityClass);
    }

    @Override
    public List find(String queryString) {
        // TODO Auto-generated method stub
        return getHibernateTemplate().find(queryString);
    }

    @Override
    public List find(String queryString, Object value) {
        // TODO Auto-generated method stub
        return getHibernateTemplate().find(queryString, value);
    }

    @Override
    public List find(String queryString, Object[] value) {
        // TODO Auto-generated method stub
        return getHibernateTemplate().find(queryString, value);
    }

    @Override
    public void initialize(T o) {
        // TODO Auto-generated method stub
        getHibernateTemplate().initialize(o);
    }

    public JdbcTemplate getJdbcTemplate() {
        return jdbcTemplate;
    }

    @Autowired
    public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {
        this.jdbcTemplate = jdbcTemplate;
    }

    @Autowired
    public void setSupportHibernateTemplate(HibernateTemplate hibernateTemplate) {
        super.setHibernateTemplate(hibernateTemplate);
    }

}

IBaseService



import java.io.Serializable;
import java.util.List;

import com.dragonsoft.dao.IBaseDao;

public interface IBaseService<T> {

    IBaseDao<T> getDao();

    void setDao(IBaseDao<T> dao);

    T get(Serializable id);

    void update(T o);

    void save(T o);

    void deleteById(Serializable id);

    void delete(T entity);

    List<T> getObjects();

    void saveOrUpdate(T entity);

}

AbstractBaseServiceImpl



import java.io.Serializable;
import java.util.List;

import org.springframework.stereotype.Service;

import com.dragonsoft.service.IBaseService;

@Service
public abstract class AbstractBaseServiceImpl<T> implements IBaseService<T> {

    public T get(Serializable id) {
        return getDao().get(id);
    }

    public void update(T o) {
        getDao().update(o);
    }

    public void save(T o) {
        getDao().save(o);
    }

    public void deleteById(Serializable id) {
        getDao().deleteById(id);
    }

    public void delete(T entity) {
        getDao().delete(entity);
    }

    public List<T> getObjects() {
        return getDao().getObjects();
    }

    public void saveOrUpdate(T entity) {
        getDao().saveOrUpdate(entity);
    }

}

原创粉丝点击