package cn.org.jshuwei.j2ee.util;
import java.io.Serializable;
import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
/**
*
* Hibernate操作的工具类
*
* @author huwei(jshuwei.org.cn)
* @since 1.0
*
*/
public class HbnUtil {
private static SessionFactory sf;
/**
* 得到SessionFactory
*
* @since 1.0
* @return 返回SessionFactory
*/
public static SessionFactory getSessionFactory() {
if (sf == null || sf.isClosed()) {
try {
sf = new Configuration().configure().buildSessionFactory();
} catch (HibernateException e) {
e.printStackTrace();
}
}
return sf;
}
/**
* 得到Session
*
* @since 1.0
* @return 返回Session
*/
public static Session getSession() {
getSessionFactory();
return sf.openSession();
}
/**
* 释放SessionFactory
*
* @since 1.0
*/
public static void releaseSessionFactory() {
if (sf != null && !sf.isClosed()) {
sf.close();
}
}
/**
* 保存对象
*
* @since 1.0
* @param obj
* 需要保存的对象
*/
public static Serializable add(Object obj) {
Session session = null;
Serializable ret = null;
try {
session = getSession();
session.beginTransaction();
ret = session.save(obj);
session.getTransaction().commit();
} catch (HibernateException e) {
e.printStackTrace();
session.getTransaction().rollback();
} finally {
if (session != null) {
session.close();
}
releaseSessionFactory();
}
return ret;
}
/**
* 删除对象
*
* @since 1.0
* @param obj
* 需要删除的对象
*/
public static void delete(Object obj) {
Session session = null;
try {
session = getSession();
session.beginTransaction();
session.delete(obj);
session.getTransaction().commit();
} catch (HibernateException e) {
e.printStackTrace();
session.getTransaction().rollback();
} finally {
if (session != null) {
session.close();
}
releaseSessionFactory();
}
}
/**
* 更新对象
*
* @since 1.0
* @param obj
* 需要更新的对象
*/
public static void update(Object obj) {
Session session = null;
try {
session = getSession();
session.beginTransaction();
session.update(obj);
session.getTransaction().commit();
} catch (HibernateException e) {
e.printStackTrace();
session.getTransaction().rollback();
} finally {
if (session != null) {
session.close();
}
releaseSessionFactory();
}
}
/**
* 查找对象
*
* @since 1.0
* @param clazz 需要查找的对象类型
* @param id
* 需要查找的对象的id
*/
public static Object find(Class clazz,Serializable id) {
Session session = null;
Object obj=null;
try {
session = getSession();
obj=session.get(clazz, id);
} catch (HibernateException e) {
e.printStackTrace();
} finally {
if (session != null) {
session.close();
}
releaseSessionFactory();
}
return obj;
}
}
分享到:
相关推荐
J2EE常用工具类—Hibernate操作 J2EE常用工具类—Cookie操作 J2EE常用工具类—数组操作 J2EE常用工具类—时间处理工具类 J2EE常用工具类—文件打包解包处理类 J2EE常用工具类——文件操作类 J2EE常用工具类...
总的来说,基于J2EE的Struts和Hibernate框架,为我们构建学生信息管理系统提供了强大的工具。它们简化了Web开发的复杂性,提高了代码的可读性和可维护性,同时也保证了系统的高性能和稳定性。在实际开发中,开发者...
在实际项目中,开发者会创建Action类来处理请求,Action类会调用Spring管理的服务层方法,这些方法可能需要通过Hibernate操作数据库。 为了更好地理解和运用这些框架,开发者需要掌握以下知识点: 1. MVC设计模式...
《精通J2EE—Eclipse Struts Hibernate Spring 整合应用案例源代码1》这个压缩包文件主要包含了一个基于J2EE平台的、利用Eclipse开发工具,整合Struts、Hibernate和Spring框架的综合应用案例的源代码。这些源代码是...
而Hibernate,作为一款优秀的对象关系映射(ORM)框架,是J2EE应用中常用来简化数据库操作的重要工具。它通过将Java类与数据库表进行映射,使得开发者可以使用面向对象的方式来处理数据,避免了直接编写SQL语句,...
这个项目采用的技术栈是Java Enterprise Edition (j2EE),它包括了Struts作为MVC(Model-View-Controller)框架,以及Hibernate作为对象关系映射(ORM)工具。这样的组合在2000年代末至2010年代初非常流行,为开发者...
12.3 使用Hibernate操作数据库的示例 12.3.1 创建数据库表 12.3.2 编写表对应的JavaBean 12.3.3 编写JavaBean对应的Xml 12.3.4 编写Hibernate的配置文件 12.3.5 编写并验证测试程序 12.4 Hibernate的配置文件 12.4.1...
- Hibernate和MyBatis是常用的J2EE ORM(Object-Relational Mapping)框架,它们简化了数据库操作。例如,Hibernate的`Session`接口提供`save()`, `get()`, `update()`, `delete()`等方法,而MyBatis则通过XML配置...
5. **commons-lang.jar**: Apache Commons Lang是Java的一个实用工具库,提供了大量的工具类,可以帮助开发者处理字符串、日期、数组等各种Java对象。在Hibernate或其他Java项目中,它常被用来增强基本类型的操作。 ...
在这个"j2ee用hibernate实现查询"的项目中,我们首先会看到如何在J2EE环境中集成Hibernate,以便通过Hibernate的API来操作MySQL数据库。集成过程通常包括以下步骤: 1. **配置Hibernate**:设置hibernate.cfg.xml...
总结来说,J2EE常用框架包括Spring、Hibernate、MyBatis、Struts和EJB等,这些框架协同工作,为开发者提供了构建大型企业级应用的强大工具。同时,掌握相关开发工具和资源,如IDEA、Maven和MyBatis指南,将极大地...
Hibernate是Java社区中最流行的ORM(Object-Relational Mapping)工具之一,它简化了数据库操作,使开发者能够使用面向对象的编程方式处理持久化数据。Hibernate通过XML或注解方式定义对象-关系映射,将数据库表与...
Struts2、Hibernate和Spring是Java企业级应用开发中广泛使用的三大开源框架,它们共同构建了J2EE应用程序的基础架构。这些框架各自有着特定的功能和优势,协同工作时能极大地提高开发效率和软件质量。 **Struts2**...
在J2EE开发中,`jar`(Java Archive)文件扮演了至关重要的角色,它们包含了编译后的Java类、资源文件以及元数据,方便在项目中进行共享和重用。下面我们将深入探讨J2EE中常用的`jar`包以及它们的功能。 1. **...
- **用途**: 包含了一些Bean工具类,如Bean复制等,被Hibernate等框架广泛使用。 - **应用场景**: 需要进行Bean操作的地方,如属性复制、属性访问等。 10. **commons-cli-1.0.jar** - **用途**: 命令行参数解析...
而Hibernate则是一个对象关系映射(ORM)工具,它简化了数据库操作,将Java对象与数据库表进行映射,从而避免了传统的SQL操作。 描述中提到的是同一个主题,没有提供额外的具体信息,但我们可以理解这可能是一个...
12.3 使用Hibernate操作数据库的示例 12.3.1 创建数据库表 12.3.2 编写表对应的JavaBean 12.3.3 编写JavaBean对应的Xml 12.3.4 编写Hibernate的配置文件 12.3.5 编写并验证测试程序 12.4 Hibernate的配置文件 12.4.1...
标题 "BBS.rar_Eclipse_J2EE_bbs_struts_hibernate_struts" 暗示了一个基于Java EE(以前称为J2EE)的BBS(Bulletin Board System,电子公告板)应用程序开发项目,该程序使用了Eclipse IDE,以及Struts、Hibernate...