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

📄 daofactory.java

📁 ext2.0+Hibernate+dwr+spring列子
💻 JAVA
字号:
package com.newsoft.hibernate;

import java.util.Collection;
import java.util.List;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.hibernate.Criteria;
import org.hibernate.HibernateException;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.Transaction;

import com.newsoft.util.Convert;

public class DaoFactory extends Convert {
	// LOG4J 日志
	private static Log log = LogFactory.getLog(DaoFactory.class);

	Query query = null;

	Collection col = null;

	Session session = null;

	Criteria crit;

	public void currentSession() {
		this.session = HibernateSessionFactory.currentSession();
	}

	public void closeSession() {
		HibernateSessionFactory.closeSession();
	}

	/**
	 * hql查询并返回记录集
	 * 
	 * @param hql
	 * @return
	 */

	public Collection getResults(String hql) {
		return getResults(hql, null);
	}

	public Collection getResults(String hql, Object params) {
		return getResults(hql, params, true);
	}

	public Collection getResults(String hql, Object params, boolean f) {

		try {
			query = this.session.createQuery(hql);

			if (params != null) {
				if (f) {
					query = this.getParams(query, (String[][]) params);
				} else {
					query = this.getParams(query, (String[]) params);
				}
			}
			col = query.list();
			// this.session.flush();
		} catch (HibernateException e) {
			e.printStackTrace();
			log.error("读取页面数据发生错误" + e.getMessage());
		} finally {
		}
		return col;
	}

	/**
	 * 增加 obj
	 */
	public boolean isInsert(Object obj) {
		boolean isOk;
		Transaction transaction = null;
		isOk = false;
		if (obj == null)
			return isOk;
		try {
			transaction = this.session.beginTransaction();
			this.session.save(obj);
			transaction.commit();
			isOk = true;
		} catch (HibernateException e) {
			if (transaction != null) {
				try {
					e.printStackTrace();
					transaction.rollback();
				} catch (HibernateException e1) {
					e1.printStackTrace();
				}
			}
			e.printStackTrace();
		} finally {
		}
		return isOk;
	}

	/**
	 * 加载
	 * 
	 * @param clazz
	 * @param key
	 * @return
	 */
	public Object findById(Class clazz, String key) {
		Object obj;
		obj = null;
		try {
			obj = this.session.get(clazz, key);
		} catch (HibernateException e) {
			e.printStackTrace();
			// log.error("显示" + clazz + ":key=" + key + "失败");
		} finally {
		}
		return obj;
	}

	/**
	 * 修改
	 * 
	 * @param obj
	 * @return
	 */
	public boolean isUpdate(Object obj) {
		boolean isOk = false;
		Transaction transaction = null;
		if (obj == null)
			return isOk;
		try {
			transaction = this.session.beginTransaction();
			this.session.update(obj);
			transaction.commit();
			isOk = true;
			log.debug("修改" + obj + "success!");
		} catch (HibernateException e) {
			if (transaction != null) {
				try {
					transaction.rollback();
				} catch (HibernateException e1) {
					e1.printStackTrace();
					log.error("修改" + obj + "error!");
				}
			}
			e.printStackTrace();
		} finally {
		}
		return isOk;
	}

	/**
	 * @param hql
	 * @param 查询参数
	 * @param 参数类型
	 *            true:二维数组 false:一维数组
	 * @return 记录数
	 */
	public int infoCount(String hql) {
		return infoCount(hql, null);
	}

	public int infoCount(String hql, Object params) {
		return infoCount(hql, params, true);
	}

	public int infoCount(String hql, Object params, boolean f) {
		int total = 0;
		try {
			hql = hql.substring(hql.indexOf("from"));
			query = this.session.createQuery(hql);

			if (f) {
				query = this.getParams(query, (String[][]) params);
			} else {
				query = this.getParams(query, (String[]) params);
			}

			List l = query.list();
			if (!l.isEmpty()) {
				total = l.size();
			}
			log.debug("计数成功!");
		} catch (Exception e) {
			log.fatal(e.getMessage());
			log.error("计数失败:\n" + hql);
		} finally {
		}
		return total;
	}

	/**
	 * @param hql
	 * @param 起始行
	 * @param 记录数/页
	 * @param 查询参数
	 * @return 记录集
	 */
	public Collection getAllInfo(String hql, int pageStart, int pageSize) {
		return getAllInfo(hql, pageStart, pageSize, null);
	}

	public Collection getAllInfo(String hql, int pageStart, int pageSize,
			String[][] params) {
		try {
			query = this.session.createQuery(hql);
			query = this.getParams(query, params);
			query.setFirstResult(pageStart);
			query.setMaxResults(pageSize);
			col = query.list();

		} catch (HibernateException e) {
			e.printStackTrace();
			log.error("读取页面数据发生错误" + e.getMessage());
		} finally {
		}
		return col;
	}

	/**
	 * 删除
	 * 
	 * @param key
	 */
	public boolean isDelete(Class clazz, String[] key) {
		boolean isOK = false;
		Transaction transaction = null;
		if (key == null)
			return isOK;
		try {
			transaction = this.session.beginTransaction();
			for (int i = 0; i < key.length; i++) {
				this.session.delete(this.session.get(clazz, key[i]));
			}
			transaction.commit();
			isOK = true;
		} catch (HibernateException e) {
			isOK = false;
			if (transaction != null) {
				try {
					transaction.rollback();
				} catch (HibernateException e1) {
					e1.printStackTrace();
				}
			}
			e.printStackTrace();
		} finally {
		}
		return isOK;
	}

	public boolean isDelete(Class clazz, String key) {
		boolean isOK = false;
		Object object = null;
		Transaction transaction = null;
		if ("".equals(key) && (null == key))
			return isOK;
		try {
			transaction = this.session.beginTransaction();
			object = this.session.get(clazz, key);
			this.session.delete(object);
			transaction.commit();
			isOK = true;
			log.debug("删除  " + clazz + ":key=" + key + "成功");
		} catch (HibernateException e) {
			isOK = false;
			if (transaction != null) {
				try {
					transaction.rollback();
				} catch (HibernateException e1) {
					e1.printStackTrace();
				}
			}
			e.printStackTrace();
			log.error("删除  " + clazz + ":key=" + key + "失败");
		} finally {
		}
		return isOK;
	}

	public static void main(String[] args) {

	}
}

⌨️ 快捷键说明

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