Hibernate原理

1.    五个核心接口

           

介绍五个接口

1.      Configuration

作用:对Hiebernate进行配置和启动;

在启动Hibernate的过程中,Configuration类的实例读取Hibernate.cfg.xml配置信息,并创建SessionFactory。

2.      SessionFactory

作用:创建Session的实例;

特点:重量级对象,线程安全;

        由于这个特点一个项目通常需要一个SessionFactory就可以了,但是要操作多个数据库就必须为每个数据库指定一个SeesionFactory。

3.      Session

作用:持久层管理器,它包含一些持久层相关的操作,诸如存储持久对象到数据库,以及从数据库中获得他们;

特点:轻量级对象,非线程安全;

        创建和销毁都不会占用多少资源,实际项目中会不断的创建和销毁Session对象。但是由于它是非线程安全的最好一个线程只创建一个Session对象。

4.      Transaction

作用:对实际事务实现的一个抽象,这些实现包括JDBC事务,、JTA 中的UserTransaction、甚至可以是           CORBA 事务;

        它是一个可选的API,可以使用也可以自己做实现。

5.      Query接口和Criteria

Query接口作用:方便对数据库以及持久对象进行查询

Criteria接口作用:与Query接口很相似,允许创建并执行面向对象的标准化查询。

值得注意的是Query也是轻量级的,它不能在Session之外使用。

2.    Hibernate原理

1.    Configuration加载Hibernate.cfg.xml,

2.    生成SessionFactory

3.    加载对象-关系映射文件*.hbm.xml

4.    创建session对象

5.    调用session API保存对象

6.    根据Dialect生成和底层数据库平台相关的sql代码

7.    对JDBC封装,执行sql脚本

        

上面讲到的过程让我想到了在.NET中使用到ADO.NET,他们其实都是为了和数据库进行交互而存在的,从本质上讲,Hibernate最终还是通过JDBC去操作数据库,只是对JDBC进行了封装。



  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 20
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 20
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值