【Java】Hibernate(一)概述

【前言】

      之前在浅析SSH框架的时候简单总结过一些Hibernate的知识,再次学习到Hibernate有熟悉的感觉。
      Hibernate 是一个开源的对象关系映射框架,是面向Java环境的对象/关系数据库映射工具,对象/关系映射Object/relational mapping (ORM),就是把对象模型表示的对象映射到,基于SQL的关系模型数据结构中去。它对JDBC进行了非常轻量级的对象封装,这让操作数据库变得十分简单。
      Hibernate不仅仅管理Java类到数据表的映射,还提供了数据查询和获取数据的方法,可以大幅减少开发时人工使用SQL和JDBC处理数据的时间。Hibernate解放了开发中常用的数据持久化的编程任务, 它对JDBC的又一次包装,封装的很彻底,使用很方便,是通往数据库的一座坚固桥梁。
      小编简要梳理了Hibernate知识,今后的系列博客大概就从下面的内容入手。                     
                       

【体系结构】      

                                       

      从表示层到数据库都为自上而下的单向依赖,持久层只单向依赖数据库。

                                        

  
      Hibernate使用数据库和配置信息来为应用程序提供持久化服务。
      Hibernate大致开发步骤:
      1.创建持久化类。
      2.创建对象-关系映射文件,*.hbm.xml。
      3.创建Hibernate配置文件,hibernate.cfg.xml。

      4.编写访问数据库的代码

【5个核心接口和类】

(1)SessionFactory接口:单个数据库映射关系经过编译后的内存镜像,也是生成Session的工厂。SessionFactory的初始化过程相对复杂,会耗费大量的资源。为了解决这个问题,Hibernate采用了线程安全可以并发调用,以实现SessionFactory的实例。多个线程的并发调用,可以实现Hibernate的实例共享。

(2)Session接口:应用程序与持久层之间交互操作的一个单线程对象。Session是一个持久化管理器,所有的持久化操作都是在Session的基础上完成的。Session接口对象实例中提供了持久化相关的增、删、改、查(CRUD)方面的操作。通常将每一个Session对象实例和一个数据库事务绑定。

(3)Transaction接口:通过事务API来控制事务的边界,封装了系统底层的事务操作和访问的接口。将应用系统中涉及事务功能的实现代码,从底层中抽象出来,提高了应用系统在不同的运行环境和JavaEE容器之间的移植性。

(4)Query接口:让开发者更加方便的对数据库表中的数据,以及与之对应的持久化对象进行查询操作。利用它可以使用面向对象的方式,实现对数据库的各种查询操作。

(5)Configuration:通过Configuration获取目前的配置,如数据源、数据库的URL、连接用户名及密码、数据库方言等。并可以将这些配置加载到内存中,并预启动Hibernate框架,最终达到创建SessionFactory对象的目的。

【Hibernate的优缺点分析】

      了解Hibernate优缺点,使用过程中要扬长避短。


      优点
      -提高生产力。对数据库的良好封装让使用数据库的效率得到了显著提升。
      -开发更加对象化。引入POJO对象这个概念。使用Hibernate可以使我们采用对象化思维操作关系型数据库。
      -可移植性。得益于POJO对象。

      -无侵入性,支持透明持久化。这点也得益于POJO对象。


       *POJO对象*
       Hibernate面向的对象就是POJO对象,Plain Ordinary Java Object译为简单的Java对象。任何类都没继承不需要实现任何接口,这样移植性很高,没有侵入性。实际就是普通JavaBeans,实质上可以理解为简单的实体类,POJO类方便程序员使用数据库中的数据表。我们可以很方便的将POJO类当做对象来进行使用,可以方便的调用其get、set方法。

      缺点
      -如使用数据库特性的语句,将很难调优。封装彻底的优点显而易见,但是封装彻底了灵活性就差点了。
      -对大批量数据更新存在问题。有缓存的问题。

      - 不适合对数据库进行大量统计查询。JDBC更适合大量统计查询。


【小结】 

     后续还会有Hibernate具体内容的博客,下篇见。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 8
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值