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

📄 commondao.java

📁 SSH示范
💻 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 + -