当前位置: 移动技术网 > IT编程>开发语言>Java > Hibernate学习——API学习

Hibernate学习——API学习

2019年04月25日  | 移动技术网IT编程  | 我要评论
一.Configuration对象 解释:Hibernate的配置文件对象,是Hibernate启动加载的第一个对象,它会定位到映射文档的位置,读取配置文件,创建一个SessionFactory对象。 作用:加载核心配置文件 用法: 1.如果是Hibernate.properties文件(里面是键值 ...

一.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()方法:撤销事务操作。

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网