Hibernate 的Configuration、sessionFactory和session和transaction对象解释

1、Configuration对象:

        Configuration conf=new Configuration();
        conf.configure(); 1.1 到 src下面找到名称hibernate.cfg.xml 配置文件,创建对象,把配置文件放到对象里面(加载核心配置文件) 1.2 

2、SessionFactory对象:(重点)

  1 使用 configuration对象创建sessionFactory对象

   1.1 创建sessionfactory过程中做事情 

    根据核心配置文件中,有数据库配置,有映射文件部分,到数据库里面根据映射关系把表创建

<property name="hibernate.hbm2ddl.auto">update</property>

  2 创建sessionFactory过程中,特别耗费资源

  3 具体实现:

    3.1 写工具类,写静态代码块实现

      静态代码块在类加载时候执行,执行一次

public class HibernateUtils {

    static Configuration conf=null;
    static SessionFactory factory=null;

    //静态代码块实现
    static{
        //加载核心配置文件
     conf=new Configuration();
    conf.configure();
     factory = conf.buildSessionFactory();
    }

    //提供方法返回SessionFactory
    public static SessionFactory getSessionFactory(){
        return factory;
    }
}

3、Session(重点)

  1  session类似于jdbc中connection

   2 调用session 里面不同的方法实现crud操作

    2.1 添加 save 方法

    2.2 修改update 方法

    2.3 删除delete 方法

    2.4 根据id 查询get方法

   3  session对象单线程对象

4 Transaction 

  1 事务对象

  开启事务Transaction tx = session.beginTransaction();

  2 事务提交和回滚方法

tx.rollback();    tx.commit();

  3 事务概念

    3.1 事务四个特性:

       原子性 一致性  隔离性  持久性

原文地址:https://www.cnblogs.com/axu521/p/10199980.html

时间: 2024-08-01 09:44:27

Hibernate 的Configuration、sessionFactory和session和transaction对象解释的相关文章

Hibernate 基础解析(Configuration,SessionFactory,Session,Transaction,Query,Criteria)

1       框架体系结构 对象关系映射(英语:(Object Relational Mapping,简称ORM,或O/RM,或O/R mapping),是一种程序技术,用于实 现面向对象编程语言里不同类型系统的数据之间的转换[1]  .从效果上说,它其实是创建了一个可在编程语言里使用的--"虚拟 对象数据库". 2       hibernate入门 2.1   ORM框架 Hibernate是一个数据持久化层的ORM框架. Object:对象,java对象,此处特指JavaBea

【Hibernate】(2)Hibernate配置与session、transaction

1. Hibernate经常使用配置 使用hibernate.default_schema属性能够让全部生成的表都带一个指定的前缀. 2. session简单介绍 不建议直接使用jdbc的connection操作数据库,而是通过使用session操作数据库. session能够理解为操作数据库的对象.session与connection是多对一的关系.每一个session都有一个与之相应的connection.一个connection不同一时候刻能够供多个session使用.把对象保存在关系数据

Hibernage错误:Could not open Hibernate Session for transaction

今天在做SSH框架整合的时候碰到的这个问题,在测试service层的时候程序正常运行,但是添加Struts,在action层测试的时候提示了如下问题:Could not open Hibernate Session for transaction.大概意思就是数据库连接超时. 解决方法如下: 在spring的配置文件中添加如下配置 给sessionFactory的bean添加如下配置 <bean id="sessionFactory" class="org.spring

[Hibernate系列—] 2. 创建SessionFactory 与 Session

Configuration 对象创建 要创建SessionFactory , 首先要创建Configuration 对象. 这个对象就是去读取hibernate 的一些配置信息. 默认状况下, hibernate会到 classPath 目录下加载hibernate.cfg.xml 文件. 这里延续上一篇的例子: [Hibernate系列-] 1. 下载与试用Hibernate(MySQL与Oracle 配置) 在Eclipse 中进行开发. 这个配置文件的方式可以有多种, 可以是xml , 可

为什么要用Hibernate框架? 把SessionFactory,Session,Transcational封装成包含crud的工具类并且处理了事务,那不是用不着spring了?

既然用Hibernate框架访问管理持久层,那为何又提到用Spring来管理以及整合Hibernate呢?把SessionFactory,Session,Transcational封装成包含crud的工具类并且处理了事务,那不是用不着spring了? Hibernate操作的步骤如下: 1. 获得Configuration对象 2. 创建SessionFactory 3. 创建Session 4. 打开事务 5. 进行持久化操作.比如上面的添加用户操作 6. 提交事务 7. 发生异常,回滚事务

Could not open Hibernate Session for transaction;

javax.servlet.ServletException: org.springframework.transaction.CannotCreateTransactionException: Could not open Hibernate Session for transaction; nested exception is org.hibernate.TransactionException: JDBC begin failed: 这个问题,我在网上找的答案是: 1. 给jdbc ur

org.springframework.transaction.CannotCreateTransactionException: Could not open Hibernate Session for transaction; nested exception is org.hibernate.exception.JDBCConnectionException: Cannot open con

org.springframework.transaction.CannotCreateTransactionException: Could not open Hibernate Session for transaction; nested exception is org.hibernate.exception.JDBCConnectionException: Cannot open connection org.springframework.orm.hibernate3.Hiberna

1、Hibernate之生成SessionFactory源码追踪

Hibernate的所有session都是由sessionFactory来生成的,那么,sessionFactory是怎么得来的呢?它与我们配置的xxx.cfg.xml文件以及xxx.hbm.xml文件之间又有着怎么样的联系呢? 先看一小段生成sessionFactory的代码: code_1: public class HibernateTest { @Test public void test() { System.out.println("test..."); //1. 创建一个

hibernate中Configuration类的作用

问题:我们在获得一个SessionFactory对象的时候经常是写下面这行代码: 1 SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory(); 那么这行代码到底有什么作用,Configuration的对象的作用是什么? 要回答上述问题必须首先知道Configuration对象的作用. Configuration的作用是:An instance of org.hibernate.cf