📄 basedaoimpl.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 {
//==============================================================================
/** DOCUMENT ME! */
private static Log log = LogFactory.getLog(BaseDAOImpl.class);
/**
* Creates a new BaseDAOImpl object.
*/
public BaseDAOImpl() {
}
//===============================================================================
/**
* 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());
}
//????�???
if (myquery.getGroupby() != null) {
querystr.append(myquery.getGroupby());
}
Query query = null;
try {
query = getHibernateTemplate().createQuery(getSession(),
querystr.toString());
if (myquery.getParalist() != null) {
List list = myquery.getParalist();
for (int i = 0, n = list.size(); i < n; i++) {
Para param = (Para) list.get(i);
switch (param.getTypeNo()) {
//��????��?????????????�?????????ase???
case Types.VARCHAR:
query.setString(i, param.getPName().toString());
break;
case Types.INTEGER:
query.setInteger(i, ((Integer) param.getPName())
.intValue());
break;
case Types.DATE:
query.setDate(i, (java.sql.Date) param.getPName());
break;
case Types.DOUBLE:
query.setDouble(i, ((Double) param.getPName())
.doubleValue());
break;
case Types.BOOLEAN:
query.setBoolean(i, ((Boolean) param.getPName())
.booleanValue());
break;
case Types.CHAR:
query.setCharacter(i, ((Character) param.getPName())
.charValue());
break;
default:
break;
/*
* case Types.JAVA_OBJECT : query.setEntity(i, (BaseModel)
* param.getPName());
*/
}
}
}
//???????��????myquery.getPageStartNo()==0????��?
if ((myquery.getPageStartNo() != 0) || myquery.isOffset()) {
int pageno = myquery.getPageStartNo();
query.setFirstResult(pageno);
query.setMaxResults((pageno) + myquery.getPageSize());
//query.setFirstResult((pageno - 1) * 5);
//query.setMaxResults((pageno) * 5);
//query.setFirstResult((pageno - 1) *
// Constants.RECORD_PER_PAGE);
//query.setMaxResults((pageno) * Constants.RECORD_PER_PAGE);
}
query.setCacheable(true);
query.setCacheRegion("frontpages");
} catch (HibernateException e) {
log.error("Create query from session error:" + e);
} catch (DataAccessException e) {
log.error("Create query from session error:" + e);
throw new DAOException(e);
} catch (Throwable e) {
log.error("Create query from session error:" + e);
throw new DAOException(e);
}
return query;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -