`
wuhaidong
  • 浏览: 357882 次
  • 性别: Icon_minigender_1
  • 来自: 青岛
社区版块
存档分类
最新评论

封装HibernateUtil对象

阅读更多
package org.cric.util;

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

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

public class HibernateUtil {
	
	private static SessionFactory factory=null;
	
	//静态方法,只实例化一次,因为SessionFactory重量级,每个SessionFactory对应一个数据库,包含这个数据库的全部信息
	//单实例!
	static{
		try{
			Configuration cfg=new Configuration().configure();
			factory=cfg.buildSessionFactory();
		}catch(Exception e){
			e.printStackTrace();
		}
	}
	//获取Session 对象
	public static Session getSession(){
		return factory.openSession();
	}
	//获取SessionFactory对象
	public static SessionFactory getSessionFactory(){
		return factory;
	}
	//因为Session 不是线程安全的,所以需要关闭
	public static void closeSession(Session session){
		if(session!=null){
			if(session.isOpen()){
				session.close();
			}
		}
	}
	//封装save方法
	public static Integer save(Object object){
		Integer status=0;
		Session session=null;
		Transaction tr=null;
		try{
			session=HibernateUtil.getSession();
			tr=session.beginTransaction();
			Serializable serializable=session.save(object);
			status=serializable.hashCode();//序列化转化成Integer类型
			tr.commit();
			return status;
		}
		catch(Exception e){
			e.printStackTrace();
			tr.rollback();
			throw new RuntimeException();
		}finally{
			HibernateUtil.closeSession(session);
		}
	}
	//封装update方法
	public static Integer update(Object object){
		Session session=null;
		Transaction tr=null;
		try{
			session=HibernateUtil.getSession();
			tr=session.beginTransaction();
			session.update(object);
			tr.commit();
			return 1;
		}catch(Exception e){
			e.printStackTrace();
			tr.rollback();
			throw new RuntimeException();
		}finally{
			HibernateUtil.closeSession(session);
		}
	}
	//封装delete方法
	public static Integer delete(Object object){
		Session session=null;
		Transaction tr=null;
		try{
			session=HibernateUtil.getSession();
			tr=session.beginTransaction();
			session.delete(object);
			tr.commit();
			return 1;
		}catch(Exception e){
			e.printStackTrace();
			tr.rollback();
			throw new RuntimeException();
		}finally{
			HibernateUtil.closeSession(session);
		}
	}
	//封装get方法
	public static Object get(Class<?> clazz,Integer id){
		Session session=null;
		Transaction tr=null;
		try{
			session=HibernateUtil.getSession();
			tr=session.beginTransaction();
			Object obj=session.get(clazz, id);
			tr.commit();
			return obj;
		}catch(Exception e){
			e.printStackTrace();
			tr.rollback();
			throw new RuntimeException();
		}finally{
			HibernateUtil.closeSession(session);
		}
	}
	//封装find方法
	public static List<?> find(String HQL){
		Session session=null;
		Transaction tr=null;
		List<?> list=null;
		try{
			session=HibernateUtil.getSession();
			tr=session.beginTransaction();
			Query query=session.createQuery(HQL);
			list=query.list();
			tr.commit();
			return list;
		}catch(Exception e){
			e.printStackTrace();
			tr.rollback();
			throw new RuntimeException();
		}finally{
			HibernateUtil.closeSession(session);
		}
	}
}
 
分享到:
评论

相关推荐

    HibernateUtil 分页 增删改查 封装

    HibernateUtil 分页 增删改查 封装 HibernateUtil 分页 增删改查 封装 HibernateUtil 分页 增删改查 封装

    hibernate入门实例封装了HibernateUtil

    【标题】:Hibernate入门实例——基于HibernateUtil的数据库操作封装 在Java开发中,Hibernate作为一个强大的对象关系映射(ORM)框架,极大地简化了数据库操作。本实例将深入浅出地介绍如何使用Hibernate进行基本...

    HibernateUtil

    4. 容错性:通过封装异常处理,HibernateUtil可以在出现错误时优雅地关闭Session,防止资源泄露。 五、使用示例 以下是一个简单的使用HibernateUtil的例子: ```java public class UserService { public void ...

    hibernate将本地SQL查询结果封装成对象(最终).zip

    本教程将详细解释如何使用Hibernate将本地SQL查询的结果封装成对象,以便更好地理解和应用这项技术。 1. Hibernate ORM简介: Hibernate是一个开源的ORM框架,它为Java应用程序提供了数据持久化的解决方案。它通过...

    HibernateUtil分装完整版HQL查询

    本教程将详细讲解如何使用HibernateUtil工具类封装HQL查询,从初始化配置到执行查询、管理事务,再到对象的持久化操作,旨在帮助开发者更高效地使用Hibernate进行数据库操作。通过学习这些内容,你可以更好地理解...

    封装了一个Hibernate增删改查的工具类

    本篇将详细介绍一个基于Hibernate封装的增删改查工具类,该工具类整合了util、comm.util以及beanutils等库,旨在提高开发效率,降低代码复杂度,方便开发者快速地获取session和sessionFactory。 首先,让我们理解...

    06_传智播客hibernate教程_完善HibernateUtil类及hql查询入门

    首先,`HibernateUtil` 类是 Hibernate 教程中常见的一种工具类,它的主要作用是提供对 Hibernate 框架的简单封装,以方便进行数据库操作。在实际开发中,我们通常会创建一个静态方法来初始化 SessionFactory,这样...

    hibenate 对DAO的封装

    在Java开发中,Hibernate是一个非常流行的ORM(对象关系映射)框架,它简化了数据库操作,使得开发者可以更专注于业务逻辑而不是底层SQL的编写。在实际项目中,为了提高代码的复用性和可维护性,通常会对DAO层进行...

    Hibernate工具类

    `HibernateUtil`工具类就是对Hibernate框架功能的一种封装,简化了对数据库的操作。 在`HibernateUtil`工具类中,常见的方法有以下几类: 1. **初始化SessionFactory**: SessionFactory是Hibernate的核心组件,它...

    hibernate3中通过nativesql或取部分字段并映射为具体对象的实现

    这样,查询结果将被自动封装成User对象的列表。然而,如果只想映射查询结果的特定字段,我们需要使用`addScalar`: ```java List[]&gt; results = sqlQuery.addScalar("id", Hibernate.LONG).addScalar("name", ...

    hibernate增删改查

    SessionFactory sessionFactory = HibernateUtil.getSessionFactory(); Session session = sessionFactory.openSession(); session.beginTransaction(); User user = new User(); // 设置用户属性... session.save...

    Hibernate操作数据库的方法

    5. **HibernateUtil**:HibernateUtil类是一个实用类,用于管理SessionFactory对象。通常包含一个静态的SessionFactory实例和一个静态方法,用于获取这个实例。HibernateUtil类可以帮助简化获取Session的操作。 ...

    Java应用中使用Hibernate.pdf

    1. **封装JDBC访问**:Hibernate通过提供一套高级API,将底层的JDBC操作进行了封装,使得开发者不再需要编写大量的SQL语句,而是可以直接使用面向对象的方式来操作数据。 2. **对象关系映射**:Hibernate允许开发者...

    案例课程B-S架构-1期 详细设计书9-公告管理模块.pdf

    - 模型层:在HibernateUtil中增加了公告新增的业务逻辑方法,接收封装用户输入的实体对象。 4. **公告删除** - 界面层:删除操作在公告列表页面中进行,无单独的删除界面。若用户无权限,会显示bbc_nomodify.jsp...

    hibernate笔记--云图智联

    HibernateUtil配置涉及到Hibernate初始化,以及提供Session对象的获取方法。Session对象是Hibernate进行持久化操作的主要接口,包括增删改查等基本操作。 ###Hibernate的增删改查操作 Hibernate通过Session对象封装...

    案例课程B-S架构-1期 详细设计书6-发布申请模块.pdf

    当用户提交表单时,`fa_add.jsp`接收这些数据,将它们封装到`Shenhe`对象中,然后调用`HibernateUtil`的`saveShenhe()`方法,将数据保存到数据库。完成保存操作后,根据方法返回的结果决定是否向用户显示成功信息并...

    hibernate讲解

    `HibernateUtil` 类通常用于封装 Session 工厂和 Session 的获取,提供便捷的事务管理。例如,可以创建一个静态方法来开始和结束事务,确保资源的正确释放。 ### 第三节 查询方式 #### 一、HQL 查询方式 ...

    Hibernate学习笔记

    Hibernate是一个开放源代码的对象关系映射(ORM)框架,它对JDBC进行了轻量级的对象封装,让Java程序员能够用对象编程思维操作数据库。Hibernate不仅适用于Java客户端程序,也适用于Web应用,特别是能够在EJB架构中...

    hibernate学习笔记定义.pdf

    Hibernate是一个开源的Java语言编写的对象关系映射(ORM)框架,它对JDBC进行了轻量级的对象封装,使得Java开发人员可以使用面向对象的方式来操作数据库。在提供的“hibernate学习笔记定义.pdf”中,我们可以看到...

    hibernate和session学习

    在实际应用中,我们通常会将`SessionFactory`和`Session`的管理封装到DAO(Data Access Object)层,以便于业务逻辑层调用。同时,为了优化性能,Hibernate还提供了二级缓存,可以通过配置将频繁访问的数据存储在...

Global site tag (gtag.js) - Google Analytics