📄 commondao.java
字号:
package com.iplan.portal.framework.base.hibernate;
import java.io.Serializable;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Collection;
import java.util.List;
import org.apache.commons.beanutils.RowSetDynaClass;
import org.apache.log4j.Logger;
import org.hibernate.Criteria;
import org.hibernate.HibernateException;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.criterion.DetachedCriteria;
import org.hibernate.criterion.Projections;
import org.springframework.context.support.ResourceBundleMessageSource;
import org.springframework.orm.hibernate3.HibernateCallback;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
/**
* <p>
* 系统访问Hibernate访问数据库的接口的实现,所有对数据库的访问都通过此类来完成。
* </p>
* <p>
* http://www.hao-se.cn
* </p>
*
* @author ws
*/
public class CommonDAO extends HibernateDaoSupport implements ICommonDAO {
private static final Logger logger = Logger.getLogger(CommonDAO.class);
private boolean cacheQueries = false;
private String queryCacheRegion;
public RowSetDynaClass findBySQL(String queryString, Object[] params) {
Session session = this.getHibernateTemplate().getSessionFactory()
.openSession();
Connection conn = session.connection();
RowSetDynaClass result = null;
try {
PreparedStatement ps = conn.prepareStatement(queryString);
for (int i = 0; i < params.length; i++) {
Object param = params[i];
ps.setObject(i + 1, param);
}
ResultSet rs = ps.executeQuery();
result = new RowSetDynaClass(rs);
rs.close();
ps.close();
session.close();
} catch (SQLException e) {
logger.error("Method:findBySQL(String queryString, Object[] params)", e);
}
return result;
}
public boolean executeSQLStatement(String sqlStatement, Object[] params)
throws SQLException {
Session session = this.getHibernateTemplate().getSessionFactory()
.openSession();
Connection conn = session.connection();
boolean result;
PreparedStatement ps = null;
try {
ps = conn.prepareStatement(sqlStatement);
for (int i = 0; i < params.length; i++) {
Object param = params[i];
ps.setObject(i + 1, param);
}
result = ps.execute();
ps.close();
session.close();
} catch (SQLException e) {
logger.error("Method:executeSQLStatement(String sqlStatement, Object[] params)", e);
try {
ps.close();
session.close();
} catch (SQLException e1) {
e1.printStackTrace(); // To change body of catch statement use
// File | Settings | File Templates.
}
throw new SQLException("Execute SQL Satatement Unsuccessfully!");
}
return result;
}
public boolean executeSQLStatement(String sqlStatement) throws SQLException {
return executeSQLStatement(sqlStatement, new Object[] {});
}
private ResourceBundleMessageSource ResourceBundleMessageSource() {
return null;
}
public void setCacheQueries(boolean cacheQueries) {
this.cacheQueries = cacheQueries;
}
public void setQueryCacheRegion(String queryCacheRegion) {
this.queryCacheRegion = queryCacheRegion;
}
public void save(final Object entity) {
getHibernateTemplate().save(entity);
}
public void saveOrUpdate(final Object entity) {
getHibernateTemplate().saveOrUpdate(entity);
}
public void persist(final Object entity) {
getHibernateTemplate().save(entity);
}
public void update(final Object entity) {
getHibernateTemplate().update(entity);
}
public RowSetDynaClass findBySQL(String queryString) {
return this.findBySQL(queryString, new String[] {});
}
public void delete(final Object entity) {
getHibernateTemplate().delete(entity);
}
public void deleteAll(Collection collections) {
getHibernateTemplate().deleteAll(collections);
}
public Object load(final Class entity, final Serializable id) {
return getHibernateTemplate().load(entity, id);
}
public Object get(final Class entity, final Serializable id) {
return getHibernateTemplate().get(entity, id);
}
public void initialize(final Object entity) {
getHibernateTemplate().initialize(entity);
}
public List findAll(final Class entity) {
return getHibernateTemplate().find("from " + entity.getName());
}
public List findByNamedQuery(final String queryName) {
return getHibernateTemplate().findByNamedQuery(queryName);
}
public List findByNamedQuery(final String queryName, final Object parameter) {
return getHibernateTemplate().findByNamedQuery(queryName, parameter);
}
public List findByNamedQuery(final String queryName,
final Object[] parameters) {
return getHibernateTemplate().findByNamedQuery(queryName, parameters);
}
public List find(final String queryString) {
return getHibernateTemplate().find(queryString);
}
public List find(final String queryString, final Object parameter) {
return getHibernateTemplate().find(queryString, parameter);
}
public List find(final String queryString, final Object[] parameters) {
return getHibernateTemplate().find(queryString, parameters);
}
// public PaginationSupport findPageByCriteria(
// final DetachedCriteria detachedCriteria) {
//
// return findPageByCriteria(detachedCriteria, PaginationSupport.PAGESIZE,
// 0);
// }
// public PaginationSupport findPageByCriteria(
// final DetachedCriteria detachedCriteria, final int startIndex) {
// return findPageByCriteria(detachedCriteria, PaginationSupport.PAGESIZE,
// startIndex);
// }
// public PaginationSupport findPageByCriteria(
// final DetachedCriteria detachedCriteria, final int pageSize,
// final int startIndex) {
// return (PaginationSupport) getHibernateTemplate().execute(
// new HibernateCallback() {
// public Object doInHibernate(Session session)
// throws HibernateException {
// Criteria criteria = detachedCriteria
// .getExecutableCriteria(session);
// criteria
// .setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY);
// List items = criteria.setFirstResult(startIndex)
// .setMaxResults(pageSize).list();
// int totalCount = getCountByCriteria(detachedCriteria);
// PaginationSupport ps = new PaginationSupport(items,
// totalCount, pageSize, startIndex);
// return ps;
// }
// }, true);
// }
public List findByCriteria(final DetachedCriteria detachedCriteria) {
return (List) getHibernateTemplate().execute(new HibernateCallback() {
public Object doInHibernate(Session session)
throws HibernateException {
Criteria criteria = detachedCriteria
.getExecutableCriteria(session);
return criteria.list();
}
}, true);
}
public int getCountByCriteria(final DetachedCriteria detachedCriteria) {
Integer count = (Integer) getHibernateTemplate().execute(
new HibernateCallback() {
public Object doInHibernate(Session session)
throws HibernateException {
Criteria criteria = detachedCriteria
.getExecutableCriteria(session);
return new Integer(criteria.setProjection(
Projections.projectionList().add(
Projections.groupProperty("id")))
.list().size());
}
}, true);
return count.intValue();
}
public void bacthdelete(final String queryString, final Object[] parameters) {
getHibernateTemplate().execute(new HibernateCallback() {
public Object doInHibernate(Session session)
throws HibernateException {
Query qry = session.createQuery(queryString);
if (parameters != null) {
for (int i = 0; i < parameters.length; i++) {
qry.setParameter(i, parameters[i]);
}
}
qry.executeUpdate();
return new Object();
}
}, true);
}
public void batchupdate(final String queryString, final Object[] parameters) {
getHibernateTemplate().execute(new HibernateCallback() {
public Object doInHibernate(Session session)
throws HibernateException {
Query qry = session.createQuery(queryString);
if (parameters != null) {
for (int i = 0; i < parameters.length; i++) {
qry.setParameter(i, parameters[i]);
}
}
qry.executeUpdate();
return new Object();
}
}, true);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -