zoukankan      html  css  js  c++  java
  • Hibernate系列-Hibernate原理

        一开始学习Hibernate之前,感觉和.net的EF差不多,就是对JDBC的一种封装而已,看到这么多视频 心情很是激动,又可以好好学习啦。

        首先来说说工作原理吧:

        1.配置好hibernate的配置文件和与类对应的配置文件后,启动服务器。
        2.服务器通过实例化Configeration对象,读取hibernate.cfg.xml文件的配置内容,并根据相关的需求建好表或者和表建立好映射关系。
        3.通过实例化的Configeration对象就可以建立sessionFactory实例,进一步,通过sessionFactory实例可以创建session对象。
        4.得到session之后,便可以对数据库进行增删改查操作了,除了比较复杂的全文搜索外,简单的操作都可以通过hibernate封装好的session内置方法来实现。
        5.此外,还可以通过事物管理,表的关联来实现较为复杂的数据库设计

    越来越像我们高校云平台3.0使用的底层架构了,所以知识是相同的吧。

        再来说说优缺点吧:

         1.首先考虑性能问题,我们的评教就是很好的例证,由于对持久层封装过于完整,导致开发人员无法对sql进行优化,无法灵活使用jdbc的原生sql,Hibernate封装了jdbc,所以没有jdbc直接访问数据库效率高。要使用数据库的特定优化机制的时候,不适合用Hibernate 
        2.框架中使用orm原则,导致配置过于复杂,一旦遇到大型项目,比如300张表以上,配置文件和内容是非常庞大的,另外,dto满天飞,性能和维护问题随之而来
        3.如果项目中各个表中关系复杂,表之间的关系很多,在很多地方把lazy都设置false,会导致数据查询和加载很慢,尤其是级联查询的时候。
        4.Hibernate在批量数据处理时有弱势,对于批量的修改,删除,不适合用Hibernate,这也是ORM框架的弱点。

         5.优点是hibernate相当于java类和数据库表之间沟通的桥梁,通过这座桥我们就可以做很多事情了。

         Hibernate视频较多,要好好总结和体会才能体会到Hibernate的精髓呀。

  • 相关阅读:
    如何在页面加载完成后再去做某事?什么方法可以判断当前页面加载已完成?
    让MySQL支持Emoji表情
    mysql utf8mb4与emoji表情
    移动前端手机输入法自带emoji表情字符处理
    统计网站的每日访问量
    yii中登录后跳转回登录前请求的页面
    YII相关资料(干货)
    [2014-08-24]为 Xamarin Studio 创建的 Asp.Net Mvc 项目配置 gitignore
    [2014-08-28]Mac系统上的几个命令解释器(控制台)
    [2014-08-18]初尝 AspNet vNext On Mac
  • 原文地址:https://www.cnblogs.com/xzpblog/p/5117921.html
Copyright © 2011-2022 走看看