zoukankan      html  css  js  c++  java
  • Hibernate学习——API学习

    一.Configuration对象

       解释:Hibernate的配置文件对象,是Hibernate启动加载的第一个对象,它会定位到映射文档的位置,读取配置文件,创建一个SessionFactory对象。

          作用:加载核心配置文件

       用法:

    1.如果是Hibernate.properties文件(里面是键值对存放的配置信息)

      

    Configuration cfg = new Configuration()  //直接new就行了

    2.如果是Hibernate.cfg.xml文件

    Configuration cfg = new Configuration().configure("hibernate.cfg.xml"); //后面还要在跟一个configure()方法,方法里面可以传配置文件路径,不写默认加载就在src下名字叫hibernate.cfg.xml文件
    如果该配置文件在src下的config包下
    Configuration cfg = new Configuration().configure("/config/hibernate.cfg.xml");

    注意:如果hibernate.cfg.xml里面没有加载映射文件(<mapping resource="">),那么就需要该对象来帮你加载映射文件

    Configuration cfg = new Configuration().configure("hibernate.cfg.xml");
            cfg.addResource("com/xxx/pojo/Customer.hbm.xml");

    二。SessionFactory-session工厂对象

      概述:SessionFactory接口负责HIbernate的初始化和建立session对象。他在hibernate中起到了一个缓冲区作用,hibernate可以将自动生成的sql语句、映射数据以及某些可以重复利用的数据放在这个缓冲区中,同时他还保存了对数据库配置的所有映射关系,维护当前的二级缓存。

      获取:

        

    SessionFactory sessionFactory = cfg.buildSessionFactory();//貌似这个方法很通用

      注意:不同版本

    1)在hibernate 3.x中的写法
    SessionFactory sf = cfg.buildSessionFactory();
    2)hibernate 4.0~hibernate 4.3的写法 ServiceRegistry sr = new ServiceRegistryBuilder().applySettings(cfg.getProperties()).buildServiceRegistry();
    3)hibernate 4.3的写法 ServiceRegistry registry = new StandardServiceRegistryBuilder().applySettings(cfg.getProperties()).build(); SessionFactory sf = cfg.buildSessionFactory(registry);
    4)hibernate 5.1的写法 StandardServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder().configure().build(); SessionFactory sessionFactory = new MetadataSources(serviceRegistry).buildMetadata().buildSessionFactory();

      特点:

    •   线程安全的,同一个实例能够供多个线程共享。
    •  它是重量级的,不能随意的创建和销毁它的实例

     一般情况下,一个项目只需要一个SessionFactory,只有当有多个数据源的时候,才会为每个数据源建立一个SessionFactory实例

    三.Session对象

        概述:Session接口负责负责被持久化对象的CRUD操作。Session对象是线程不安全的,(这个session其实就相当于jdbc里面的connection)是应用程序与数据库之间的交互操作的一个单线程对象,是hibernate运转核心。

        功能:为持久化对象提供创建,读取和删除的能力,所有的持久化对象必须在session的管理下才可以进行持久化操作(为后面持久化类的状态做铺垫)

        获取:

    1.第一种方式获取:

    Session session = sessionFactory.openSession();  //SessionFactory直接创建一个新的session实例,并且使用完成后需要调用close方法将session关闭

    2.第二种方式:

    Session session = SessionFactory.getCurrentSession();   //将session对象绑定到当前的线程中,随着事务提交或者回滚,线程结束,session也会自动销毁

        session里面的方法

    •   save(),update(),saveOrUpdate()            用于增加和修改对象
    •        delete()                                                   用于删除对象
    •        get()和load()                                           根据主键查询
    •     createQuery()和createSQLQuery()         用于数据库操作对象             
    •       createCriteria()                                         条件查询                            

    四:Transaction对象

        Transaction接口主要用于管理事务,它是hibernate的数据库事务接口。

      hibernate开启事务:

    Transaction tx = session.beginTransaction();

      方法:

    • commit()方法:提交相关联的session实例
    • rollback()方法:撤销事务操作。
  • 相关阅读:
    poj 2186 && hdu 3836
    poj 2833 The Average
    hud 3062 Party
    论 ACM 与泡妞 (转载)
    poj 1064 Cable master
    poj Candies
    [转]人才流失的背后
    获取存储过程的ReturnValue值
    javascript js jquery获取元素位置代码总结
    【引用】xmlpath 操作 xml
  • 原文地址:https://www.cnblogs.com/ends-earth/p/10762907.html
Copyright © 2011-2022 走看看