basehibernatedao.java

来自「一个用struts和hibernate架构的房屋出租系统。」· Java 代码 · 共 251 行

JAVA
251
字号
package com.accp.dao;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

import org.hibernate.HibernateException;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.Transaction;

import com.accp.util.HibernateSessionFactory;

public class BaseHibernateDAO
{
	/**
	 * 自己定义的查询的方法
	 * 
	 * @param obj
	 * @param hql
	 * @return Object
	 */
	public Object getUniqueResult(String hql)
	{
		Object obj = null;
		Session session = null;
		Transaction tx = null;

		try
		{
			session = HibernateSessionFactory.getSession();
			tx = session.beginTransaction();
			obj = session.createQuery(hql).uniqueResult();
			tx.commit();
		} catch (HibernateException e)
		{
			if (null != tx)
				tx.rollback();
			e.printStackTrace();
		} finally
		{
			HibernateSessionFactory.closeSession();
		}
		return obj;
	}

	/**
	 * 添加对象的方法
	 * 
	 * @param obj
	 * @return
	 */
	public boolean addObject(Object obj)
	{
		boolean flag = false;
		Session session = null;
		Transaction tx = null;

		try
		{
			session = HibernateSessionFactory.getSession();
			tx = session.beginTransaction();
			session.save(obj);

			flag = true;

			tx.commit();
		} catch (HibernateException e)
		{
			if (null != tx)
				tx.rollback();
			e.printStackTrace();
		} finally
		{

			HibernateSessionFactory.closeSession();
		}

		return flag;
	}

	/**
	 * 按主键查找的方法
	 * 
	 * @param classObj
	 * @param serializable
	 * @return Object
	 */
	public Object findByPK(Class classObj, Serializable serializable)
	{
		Object obj = null;
		Session session = null;
		Transaction tx = null;

		try
		{
			session = HibernateSessionFactory.getSession();
			tx = session.beginTransaction();
			obj = session.get(classObj, serializable);
			tx.commit();
		} catch (HibernateException e)
		{
			if (null != tx)
				tx.rollback();
			e.printStackTrace();
		} finally
		{
			HibernateSessionFactory.closeSession();
		}
		return obj;

	}

	/**
	 * 删除的方法
	 * 
	 * @param obj
	 * @return
	 */
	public boolean deleteObj(Object obj)
	{
		boolean flag = false;
		Session session = null;
		Transaction tx = null;

		try
		{
			session = HibernateSessionFactory.getSession();
			tx = session.beginTransaction();
			session.delete(obj);
			flag = true;
			tx.commit();
		} catch (HibernateException e)
		{
			if (null != tx)
				tx.rollback();
			e.printStackTrace();
		} finally
		{
			HibernateSessionFactory.closeSession();
		}
		return flag;
	}

	/**
	 * 查找所有分页
	 * 
	 * @param hql
	 * @return boolean
	 */
	public List getList(int pageNo, int pageSize, String hql)
	{
		List list = null;
		Session session = null;
		Transaction tx = null;

		try
		{
			session = HibernateSessionFactory.getSession();
			tx = session.beginTransaction();

			Query query = session.createQuery(hql);

			query.setFirstResult(pageSize * (pageNo - 1));
			query.setMaxResults(pageSize);

			list = query.list();

			tx.commit();
		} catch (HibernateException e)
		{
			if (null != tx)
				tx.rollback();
			e.printStackTrace();
		} finally
		{
			HibernateSessionFactory.closeSession();
		}

		return list;
	}
	
	
	/**
	 * 查找所有
	 * 
	 * @param hql
	 * @return boolean
	 */
	public List getAll(String hql)
	{
		List list = null;
		Session session = null;
		Transaction tx = null;

		try
		{
			session = HibernateSessionFactory.getSession();
			tx = session.beginTransaction();

			Query query = session.createQuery(hql);

			list = query.list();

			tx.commit();
		} catch (HibernateException e)
		{
			if (null != tx)
				tx.rollback();
			e.printStackTrace();
		} finally
		{
			HibernateSessionFactory.closeSession();
		}

		return list;
	}


	/**
	 * 更新的方法
	 * 
	 * @param obj
	 * @return boolean
	 */
	public boolean updateObj(Object obj)
	{
		boolean flag = false;
		Session session = null;
		Transaction tx = null;

		try
		{
			session = HibernateSessionFactory.getSession();
			tx = session.beginTransaction();
			session.update(obj);
			flag = true;
			tx.commit();
		} catch (HibernateException e)
		{
			if (null != tx)
				tx.rollback();
			e.printStackTrace();
		} finally
		{
			HibernateSessionFactory.closeSession();
		}
		return flag;
	}
}

⌨️ 快捷键说明

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