Configuration cfg=new Configuration();
cfg.configure();
SessionFactory sf=cfg.buildSessionFactory();
这些代码是非常耗时的,我们希望它只做一次,一般我们希望它只做一次,我们去做一个工具类去初始化hibernate。工具类一般不希望被继承,别人来改写我的东西,一般用finally.
package
net.cnlib.util;
import
org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
public final class
HibernateUtil {
private static SessionFactory sessionFactory=null;
private HibernateUtil() {
}
static {
Configuration cfg = new Configuration();
cfg.configure();
sessionFactory = cfg.buildSessionFactory();
}
public
static SessionFactory getSessionFactory() {
return sessionFactory;
}
public
static Session getSession(){
return sessionFactory.openSession();
}
}
cfg.configure()这句话就会去读hibernate.cfg.xml里面的配置文件.如果你的配置文件不叫hibernate,cfg.xml,你就要用cfg.configure("filename")来指定你需要的配置文件。我们可以查看源代码。在使用cfg.configure()时:
public
Configuration configure() throws HibernateException {
configure( "/hibernate.cfg.xml" );
return this;
}
会把hibernate.cfg.xml传进去,eclipse会在哪里去找这个hibernate.cfg.xml这个文件呢?会在classpath中去找这个文件。src这个目录不是classpath,但是它为什么可以找的到呢?因为scr目录最终都会编译到classpath中去。session就类似与jdbc的connection.
Hibernate 中先对来说比较规范的一个添加一个对象的写法
static void
addPerson(Person person) {
Session session = null;
Transaction tx = null;
try {
session = HibernateUtil.getSession();
tx = session.beginTransaction();
session.save(person);
}
catch (HibernateException e) {
if (tx != null)
tx.rollback();
throw e; //这个时候最好是把异常抛出去,因为如果只是回滚的话,就没有任何提示给调用者。
} finally {
session.close();
}
}
分享到:
相关推荐
3. 缓存SessionFactory:初始化完成后,SessionFactory被缓存在HibernateUtil中,后续请求可以直接复用,无需重复初始化。 4. Session管理:HibernateUtil提供get Session()方法,根据需要创建或返回已存在的...
首先,`HibernateUtil` 类是 Hibernate 教程中常见的一种工具类,它的主要作用是提供对 Hibernate 框架的简单封装,以方便进行数据库操作。在实际开发中,我们通常会创建一个静态方法来初始化 SessionFactory,这样...
在这个hibernate入门实例中,我们将学习如何创建并使用HibernateUtil工具类,该类包含`save`和`get`方法,分别用于执行数据的保存和查询。 首先,我们需要在项目中配置Hibernate的相关文件,包括hibernate.cfg.xml...
### Hibernate中Example的用法详解 #### 一、前言 Hibernate作为一款强大的ORM(对象关系映射)框架,提供了多种灵活的查询方式,其中`Example`查询是基于对象实例进行匹配查询的一种方法,它允许开发者通过提供一...
Hibernate5.2.1 的工具类 创建session 和 sessionFactory
HibernateUtil是一个常见的实用工具类,用于简化Hibernate框架的使用,特别是在小型项目或快速开发中。它通常包含初始化SessionFactory、获取Session、开始和结束事务、保存、更新和删除对象等常用操作。这个工具类...
HibernateUtil 分页 增删改查 封装 HibernateUtil 分页 增删改查 封装 HibernateUtil 分页 增删改查 封装
在 Hibernate 中,每个实体类都对应一个配置文件,该配置文件以 `.hbm.xml` 结尾。例如,`UserInfo` 实体类对应的配置文件为 `userinfo.hbm.xml`。在该文件中,我们可以定义实体类与数据库表之间的映射关系。 ...
在Java的持久化框架中,Hibernate是一个非常流行的ORM(对象关系映射)工具,它极大地简化了数据库操作。然而,在某些特定场景下,我们可能并不需要频繁地打开和关闭Session,这时“Hibernate-nosession”就显得尤为...
2. **持久化对象(Persistent Objects)**:在Hibernate中,持久化对象是Java类,它们代表数据库中的表。这些类通常使用注解(如@Entity)来标识,并通过字段与表的列对应。例如,一个User类可以对应到数据库中的...
在本项目中,“java用hibernate连接数据库提取中文”是利用Hibernate框架在Eclipse集成开发环境中与Oracle数据库进行交互,以读取和处理中文数据的小程序。下面我们将详细讨论相关的知识点。 首先,我们需要了解...
在代码示例中,首先通过HibernateUtil获取当前Session,并通过DAO层方法查询指定ID的Person实体。接着,尝试访问Person实体的`address`属性。如果在关闭Session之后进行访问,由于Session已关闭,将导致异常抛出。...
本文将深入探讨Hibernate中的事务处理,特别是“当前线程中的Session”这一概念,以及如何在实际开发中有效地利用它。 在Hibernate中,Session是与持久化层交互的主要接口,它负责对象的持久化、检索、更新和删除等...
ORM 框架如 Hibernate、TopLink 和 OJB 等,能够将数据库中的表映射为 Java 对象,简化了数据访问层的实现。 ### 开发流程 1. **由 Domain Object 到 mapping 到 db**:这是官方推荐的方式,先设计好业务对象,...
在Hibernate中,可以使用以下几种方式来实现多表联合查询: - **HQL (Hibernate Query Language)** - **Criteria API** - **Native SQL** 本文将重点介绍如何使用HQL和Native SQL来实现多表联合查询。 #### 三、...
### Hibernate详解:从入门到精通 #### 概述与核心概念 Hibernate,一款由Gavin King创立并发展...无论是初学者还是有经验的开发人员,都能从Hibernate的学习中受益匪浅,为构建高效、健壮的Java应用打下坚实的基础。
4. 使用SessionFactory:在代码中,通过AnnotationConfiguration或HibernateUtil类加载配置文件并创建SessionFactory。 5. 数据操作:与普通Java工程一致,使用SessionFactory的Session对象进行数据库操作。 在...
在Java开发中,Hibernate是一个非常流行的持久化框架,它简化了数据库操作,使得开发者可以更加专注于业务逻辑而不是繁琐的数据访问代码。本篇将详细介绍如何使用Hibernate在Oracle数据库中实现数据的增删改查操作。...
本文将深入探讨如何在Hibernate中调用Oracle的函数,以实现高效的数据操作。 首先,我们需要理解Hibernate的核心理念,它允许开发者通过面向对象的方式来处理数据库操作,而无需编写大量的SQL语句。Hibernate通过...