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的精髓呀。

  • 相关阅读:
    初识你Swift【上篇】
    初识你Swift【下篇】
    单元测试基础
    时间都去哪了?
    iOS App上线的秘密
    mysql系列——DQL常见操作汇总(四)
    Get和Post请求有什么区别?
    SpringBoot2+WebSocket之聊天应用实战
    OCR识别
    mysql系列——子查询(非常重要)(八)
  • 原文地址:https://www.cnblogs.com/xzpblog/p/5117921.html
Copyright © 2011-2022 走看看