04-HibernateUtil完整版,HQL查询入门

①User在Oracle数据库中是一个关键字。
尽量是用命名参数编写sql语句。
分页的两个重要的方法query.setFirstResult(); query.setMaxResult();
query.list()方法,获取集合。

query.uniqueResult()获取单个记录。




HibernateUtil.java

package cn.itcast.hibernate;

import java.io.Serializable;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;

/**
 * @ProjectName:hibernate
 * @ClassName:HibernateUtil
 * @Description:hibernate工具类
 * @author: 徐凯强
 * @version: V1.0
 * @date:2014-7-6上午11:07:42
 */
public final class HibernateUtil {
	private static SessionFactory sessionFactory;

	/** 私有的构造方法,不能被实例化 */
	private HibernateUtil() {
	}

	/** 当虚拟机加载类的时候,执行,保证只运行一次 */
	static {
		/** hibernate初始化 */
		Configuration cfg = new Configuration();
		cfg.configure();
		/** 初始化,目的获取sessionFactory对象 */
		sessionFactory = cfg.buildSessionFactory();
	}

	/**
	 *@MethodName:getSessionFactory
	 *@Description:获取sessionFactory
	 *@author:徐凯强
	 *@return SessionFactory
	 *@date:2014-7-6上午11:04:51
	 */
	public static SessionFactory getSessionFactory() {
		return sessionFactory;
	}

	/**
	 *@MethodName:getSession
	 *@Description:获取session对象
	 *@author:徐凯强
	 *@return Session返回session对象
	 *@date:2014-7-6上午11:09:31
	 */
	public static Session getSession() {
		return sessionFactory.openSession();
	}

	/**
	 *@MethodName:save
	 *@Description:保存实体
	 *@param entity要保存的实体参数
	 *@author:徐凯强
	 *@return void返回值
	 *@date:2014-7-6下午04:16:54
	 */
	public static void save(Object entity) {
		/** 创建session、transaction对象 */
		Session session = null;
		Transaction transaction = null;
		try {
			/** 使用工具类进行实例化Session对象 */
			session = HibernateUtil.getSession();
			/** 调用session的beginTransaction方法实例化transaction对象 */
			transaction = session.beginTransaction();
			/** 调用session的save方法,进行对domain对象的持久化 */
			session.save(entity);
			/** 提交事务,如果不提交,数据将无法持久化到数据库中 */
			/** 如果事务提交不成功,会进行自动回滚 */
			transaction.commit();
		} finally {
			/** 判断session对象是否为空,不为空则关闭session资源 */
			if (session != null) {
				session.close();
			}
		}
	}

	/**
	 *@MethodName:delete
	 *@Description:删除实体
	 *@param entity要删除的实体参数
	 *@author:徐凯强
	 *@return void返回值
	 *@date:2014-7-6下午04:19:15
	 */
	public static void delete(Object entity) {
		/** 创建session、transaction对象 */
		Session session = null;
		Transaction transaction = null;
		try {
			/** 使用工具类进行实例化Session对象 */
			session = HibernateUtil.getSession();
			/** 调用session的beginTransaction方法实例化transaction对象 */
			transaction = session.beginTransaction();
			/** 调用session的delete方法,进行对domain对象的删除 */
			session.delete(entity);
			/** 提交事务,如果不提交,数据将无法持久化到数据库中 */
			/** 如果事务提交不成功,会进行自动回滚 */
			transaction.commit();
		} finally {
			/** 判断session对象是否为空,不为空则关闭session资源 */
			if (session != null) {
				session.close();
			}
		}
	}

	/**
	 *@MethodName:update
	 *@Description:更新实体
	 *@param entity要更新的实体参数
	 *@author:徐凯强
	 *@return void返回值
	 *@date:2014-7-6下午04:20:32
	 */
	public static void update(Object entity) {
		/** 创建session、transaction对象 */
		Session session = null;
		Transaction transaction = null;
		try {
			/** 使用工具类进行实例化Session对象 */
			session = HibernateUtil.getSession();
			/** 调用session的beginTransaction方法实例化transaction对象 */
			transaction = session.beginTransaction();
			/** 调用session的update方法,进行对domain对象的更新 */
			session.update(entity);
			/** 提交事务,如果不提交,数据将无法持久化到数据库中 */
			/** 如果事务提交不成功,会进行自动回滚 */
			transaction.commit();
		} finally {
			/** 判断session对象是否为空,不为空则关闭session资源 */
			if (session != null) {
				session.close();
			}
		}
	}

	/**
	 *@MethodName:get
	 *@Description:根据主键进行查询数据库中的记录
	 *@param clazz表示Class类对象
	 *@param id
	 *@author:徐凯强
	 *@return Object返回Object对象
	 *@date:2014-7-6下午04:25:33
	 */
	public static Object get(Class<?> clazz, Serializable id) {
		/** 创建session、transaction对象 */
		Session session = null;
		Object object = null;
		try {
			/** 使用工具类进行实例化Session对象 */
			session = HibernateUtil.getSession();
			/** 通过反射获取类的信息,通过反射找到类的映射文件,知道到数据库那张表进行查询 */
			object = session.get(clazz, id);
		} finally {
			/** 判断session对象是否为空,不为空则关闭session资源 */
			if (session != null) {
				session.close();
			}
		}
		return object;
	}
}




源码下载地址:
HibernateUtil分装完整版HQL查询


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

会编程的阿强

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值