由于SessionFactory是线程安全的,在hibernate中对应数据库,而且SessionFactory的创建过程是重量级的,创建比较耗时,通常只创建一次。所以用HibernateUtils类封装了SessionFactory:
package com.wyx.hibernate;
import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
public class HibernateUtils {
private static SessionFactory factory =null;
static{
try {
//new Configuration()默认获取的是Hibernate.property
factory = new Configuration().configure().buildSessionFactory();
} catch (HibernateException e) {
e.printStackTrace();
}
}
public static Session getSession(){
Session session = factory.openSession();
return session;
}
public static void closeSession(Session session){
if(session != null){
if(session.isOpen()){
session.close();
}
}
}
public static SessionFactory getSessionFactory(){
return factory;
}
}
分享到:
相关推荐
HibernateUtils.java文件超级经典哦...不信就下来试试看哦...呵呵...
package com.example.hibernateutils import javax.persistence.Entity ; @Entity public class Vishnu { } package com.example.hibernateutils import javax.persistence.Entity ; @Entity public class ...
这里的`HibernateUtils`使用`AnnotationConfiguration`初始化SessionFactory,这是与使用XML配置文件的不同之处。`AnnotationConfiguration`允许我们在不编写.hbm.xml文件的情况下,直接在实体类上使用注解进行对象...
`HibernateUtils`类提供了一个静态工厂方法来获取`SessionFactory`,这是Hibernate的主要入口点,用于创建`Session`实例,进而执行CRUD操作。 HQL在查询时提供了更面向对象的语法,例如,我们可以用以下方式查询: ...
可以创建一个名为`HibernateUtils`的工具类,其中包含如`getSessionFactory()`、`executeTransaction()`等方法。 3. **实现CRUD操作**:模拟HibernateTemplate的基本功能,如增删改查,可以创建一系列静态方法,...
而`HibernateUtils`类则负责初始化`SessionFactory`实例,这是Hibernate中非常重要的组成部分,它负责创建`Session`实例,而`Session`实例则用于执行所有对数据库的操作。 ```java public class HibernateUtils { ...
session = HibernateUtils.getSession(); session.beginTransaction(); Query query = session.createQuery("from User"); query.setFirstResult(0); // 从第一条记录开始 query.setMaxResults(4); // 取出四条...
Session session = HibernateUtils.openSession(); Transaction tx = session.beginTransaction(); Customer customer = new Customer(); customer.setCname("小沈"); for (int i = 1; i ; i++) { Order order...
在实际项目中,我们通常会创建工具类如HibernateUtils,以方便管理和获取SessionFactory和Session。例如: ```java public class HibernateUtils { private static SessionFactory factory; static { try { ...
at com.genuitec.eclipse.hibernate.util.HibernateUtils.getConfigFile(HibernateUtils.java:510) at com.genuitec.eclipse.hibernate.util.HTUtils.getConsoleConfigurationPreferences(HTUtils.java:184) at ...
Session session = HibernateUtils.getSession(); session.beginTransaction(); Student student = (Student) session.load(Student.class, 1); System.out.println("student.name=" + student.getName()); // ...
【标题】:Hibernate入门实例——基于HibernateUtil的数据库操作封装 在Java开发中,Hibernate作为一个强大的对象关系映射(ORM)框架,极大地简化了数据库操作。本实例将深入浅出地介绍如何使用Hibernate进行基本...
3. 编写`HibernateUtils`工具类,提供SessionFactory的获取和释放,以便于数据库操作。 4. 实现DAO层,创建`DeptDao`接口及其实现类,定义与数据库交互的方法。 5. 设计Service层,创建`DeptService`接口及其实现类...
工具类`HibernateUtils`就展示了这样的设计,它包含了静态的`Configuration`和`SessionFactory`变量,以及一个静态初始化块来加载配置文件并创建SessionFactory。开发人员可以通过`getSessionFactory()`方法获取...
- 创建`hibernateUtils`工具类简化常用操作。 #### 三、核心概念和技术点 **1. Hibernate实体编写的规则**: - 持久化类提供无参数构造器。 - 成员变量私有,提供公共的get/set方法访问。 - 持久化类中的属性应...
- 创建SessionFactory,通过HibernateUtils等工具类方便地获取Session。 - 实体类的创建及对应的hibernate-mapping.xml文件定义,描述对象关系映射。 4. **整合步骤**: - 在Struts的Action类中注入由Spring管理...
`HibernateUtils.java`则是一个实用工具类,它提供了一些便捷方法,如获取Session实例、开启和关闭事务等。这个类使得在SSH框架中使用Hibernate更加方便,避免了直接操作SessionFactory的复杂性。 `jndi.properties...