zoukankan      html  css  js  c++  java
  • Hibernate的常用关键类以及接口介绍

    上一篇初步的对Hibernate进行了认识,并测试了Hibernate的HelloWorld, 这里主要介绍HibernateTest类中的相关类和接口,以及其作用和特性,关于Session中的相关方法,下篇中会作为重点体会学习。

    1、Configuration 类

    •     Configuration 类负责管理 Hibernate 的配置信息。包括:

      –    Hibernate 运行的底层信息:数据库的URL、用户名、密码、JDBC驱动类,数据库Dialect,数据库连接池等(对应hibernate.cfg.xml 文件)。

      –    持久化类与数据表的映射关系(*.hbm.xml 文件)

    •     创建 Configuration 的两种方式

    A. 属性文件(hibernate.properties):

    Configuration cfg= new Configuration();
    B.Xml文件(hibernate.cfg.xml

    Configuration cfg= new Configuration().configure();
    C. Configuration 的 configure 方法还支持带参数的访问:

    File file = newFile(“hibernate.cfg.xml”);
     Configuration cfg= new Configuration().configure(file);

    2、SessionFactory 接口

    •     针对单个数据库映射关系经过编译后的内存镜像,是线程安全的。

    •     SessionFactory 对象一旦构造完毕,即被赋予特定的配置信息

    •     SessionFactory是生成Session的工厂

    •     构造 SessionFactory 很消耗资源,一般情况下一个应用中只初始化一个 SessionFactory 对象。

    •     Hibernate4 新增了一个 ServiceRegistry 接口,所有基于 Hibernate 的配置或者服务都必须统一向这个ServiceRegistry  注册后才能生效

    •     Hibernate4 中创建 SessionFactory 的步骤:

       Configuration cfg=new Configuration().configure();
    		ServiceRegistry serviceRegistry=new ServiceRegistryBuilder().applySettings(cfg.getProperties()).buildServiceRegistry();
    		sessionFactory=cfg.buildSessionFactory(serviceRegistry);
    3、Session接口

    •     Session 是应用程序与数据库之间交互操作的一个单线程对象,是 Hibernate 运作的中心,所有持久化对象必须在 session 的管理下才可以进行持久化操作。此对象的生命周期很短。Session 对象有一个一级缓存,显式执行 flush 之前,所有的持久层操作的数据都缓存在 session 对象处。相当于 JDBC 中的 Connection

    •     持久化类与 Session 关联起来后就具有了持久化的能力。

    •     Session 类的方法:

    •     取得持久化对象的方法: get() load()

    •     持久化对象都得保存,更新和删除:save(),update(),saveOrUpdate(),delete()

    •     开启事务: beginTransaction().

    •     管理 Session 的方法:isOpen(),flush(),clear(), evict(), close()等

    4、Transaction(事务)

    •     代表一次原子操作,它具有数据库事务的概念。所有持久层都应该在事务管理下进行,即使是只读操作。

     Transaction tx =session.beginTransaction();

    •     常用方法:

    –    commit():提交相关联的session实例

    –    rollback():撤销事务操作

    –    wasCommitted():检查事务是否提交





  • 相关阅读:
    暑假自学(19)
    暑假自学(18)
    暑假自学(17)
    暑假自学(16)
    暑假自学(15)
    rsync简介
    10.Go语言-面向对象简单了解
    dp 数字三角形
    P1359租用游艇(dp+dfs)
    油田问题 bfs
  • 原文地址:https://www.cnblogs.com/elgin-seth/p/5293781.html
Copyright © 2011-2022 走看看