⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 basedaoimpl.java

📁 关于 Jaoso新闻文章发布系统 --- --- --- --- --- --- --- --- --- --- --- --- --- -- 版本信息:Jaoso新闻文章发布系统 0.9.1b
💻 JAVA
字号:
package jaoso.framework.dao.hibernate;

import jaoso.framework.dao.BaseDAO;
import jaoso.framework.dao.MyQuery;
import jaoso.framework.dao.Para;

import jaoso.framework.exception.DAOException;

import net.sf.hibernate.HibernateException;
import net.sf.hibernate.Query;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

import org.springframework.dao.DataAccessException;

import org.springframework.orm.hibernate.support.HibernateDaoSupport;

import java.io.Serializable;

import java.sql.Types;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;


/**
 * DOCUMENT ME!
 *
 * @author $author$
 * @version $Revision$
 */
public class BaseDAOImpl extends HibernateDaoSupport implements BaseDAO {

    //~ Static fields/initializers =============================================

    //==============================================================================

    /** DOCUMENT ME! */
    private static Log log = LogFactory.getLog(BaseDAOImpl.class);

    //~ Constructors ===========================================================

    /**
     * Creates a new BaseDAOImpl object.
     */
    public BaseDAOImpl() {

    }

    //~ Methods ================================================================

    //===============================================================================

    /**
     * Find some objects from database
     *
     * @param query MyQuery
     * @return entity array
     */
    public final Object[] findEntity(final MyQuery query) {

        Object[] objs = null;
        List list;

        try {

            if (query.isCache()) {

                list = new ArrayList();

                for (Iterator it = getQuery(query)
                                       .iterate(); it.hasNext();) {

                    list.add(it.next());
                }

                objs = new Object[list.size()];
                objs = list.toArray(objs);
            } else {

                list = getQuery(query)
                           .list();
                objs = new Object[list.size()];
                objs = list.toArray(objs);
            }
        } catch (HibernateException e) {

            log.error("Find objects from database error:" + e);
            throw new DAOException("Find objects from database error:"
                + e.getMessage());
        } catch (DataAccessException e) {

            log.error("Find objects from database error:" + e);
            throw new DAOException(e);
        } catch (Throwable e) {

            log.error("Find objects from database error:" + e);
            throw new DAOException(e);
        }

        return objs;
    }

    /** (non-Javadoc)
     * @see jaoso.framework.dao.BaseDAO#findEntity(java.lang.String)
     */
    public final Object[] findEntity(final String query) {

        MyQuery myquery = new MyQuery();
        myquery.setQueryString(query);

        return findEntity(myquery);
    }

    //end mothod
    //===============================================================================

    /**
     * load a object from database
     *
     * @param obj Object
     * @param id Serializable
     * @return entity
     */
    public final Object loadEntity(final Object obj, final Serializable id) {

        Object entity;

        try {

            entity = getHibernateTemplate()
                         .load(obj.getClass(), id);
        } catch (DataAccessException e) {

            log.error("load entity error: " + e);
            throw new DAOException(e);
        } catch (Throwable e) {

            log.error("load entity error: " + e);
            throw new DAOException(e);
        }

        return entity;
    }

    /** (non-Javadoc)
     * @see jaoso.framework.dao.BaseDAO#loadEntity(java.lang.Class, java.io.Serializable)
     */
    public final Object loadEntity(final Class clasz, final Serializable id) {

        Object obj = null;

        try {

            obj = getHibernateTemplate()
                      .load(clasz, id);
        } catch (DataAccessException e) {

            log.error("load entity error: " + e);
            throw new DAOException(e);
        } catch (Throwable e) {

            log.error("load entity error: " + e);
            throw new DAOException(e);
        }

        return obj;
    }

    //==============================================================================

    /**
     * Remove a object from database
     *
     * @param obj Object
     *
     */
    public final void removeEntity(final Object obj) {

        try {

            getHibernateTemplate()
                .delete(obj);
        } catch (DataAccessException e) {

            log.error("remove entity error: " + e);
            throw new DAOException(e);
        } catch (Throwable e) {

            log.error("remove entity error: " + e);
            throw new DAOException(e);
        }
    }

    //==============================================================================

    /**
     * insert or update a object to database
     *
     * @param obj Object
     * @return entity
     */
    public final Object saveEntity(final Object obj) {

        try {

            getHibernateTemplate()
                .save(obj);
        } catch (DataAccessException e) {

            log.error("save entity error: " + e);
            throw new DAOException(e);
        } catch (Throwable e) {

            log.error("save entity error: " + e);
            throw new DAOException(e);
        }

        return obj;
    }

    /**
     * DOCUMENT ME!
     *
     * @param obj DOCUMENT ME!
     *
     * @return DOCUMENT ME!
     *
     */
    public final Object updateEntity(final Object obj) {

        try {

            getHibernateTemplate()
                .update(obj);
        } catch (DataAccessException e) {

            log.error("update entity error: " + e);
            throw new DAOException(e);
        } catch (Throwable e) {

            log.error("update entity error: " + e);
            throw new DAOException(e);
        }

        return obj;
    }

    /**
     * DOCUMENT ME!
     *
     * @param myquery DOCUMENT ME!
     *
     * @return DOCUMENT ME!
     */
    private Query getQuery(final MyQuery myquery) {

        StringBuffer querystr = new StringBuffer(myquery.getQueryString());

        //????????
        if (myquery.getOrderby() != null) {

            querystr.append(myquery.getOrderby());
        }

        //????

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -