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

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-11-05 12:23:14

Hibernate系列-Hibernate原理的相关文章

【SSH进阶之路】Hibernate系列——总结篇(九)

这篇博文是Hibernate系列的最后一篇,既然是最后一篇,我们就应该进行一下从头到尾,整体上的总结,将这个系列的内容融会贯通. 概念 Hibernate是一个对象关系映射框架,当然从分层的角度看,我们也说它是数据持久层的框架. 我们从上一句话可以看出Hibernate的核心:面向对象.关系映射以及数据持久化.前面两个概念很容易理解,而对于"数据持久化",就是将数据或者某物体,永久的保存起来.现实生活中的例子有很多,例如:鲜肉冷藏,水果做成罐头,而对于编程而言就是将数据保存在文件或磁盘

(Hibernate进阶)Hibernate系列——总结篇(九)

这篇博文是hibernate系列的最后一篇,既然是最后一篇,我们就应该进行一下从头到尾,整体上的总结,将这个系列的内容融会贯通. 概念 Hibernate是一个对象关系映射框架,当然从分层的角度看,我们也说它是数据持久层的框架. 我们从上一句话可以看出Hibernate的核心:面向对象.关系映射以及数据持久化.前面两个概念很容易理解,而对于"数据持久化",就是将数据或者某物体,永久的保存起来.现实生活中的例子有很多,例如:鲜肉冷藏,水果做成罐头,而对于编程而言就是将数据保存在文件或磁盘

【SSH框架】之Hibernate系列一

微信公众号:compassblog 欢迎关注.转发,互相学习,共同进步! 有任何问题,请后台留言联系! 1.Hibernate框架概述 (1).什么是HibernateHibernate是一个开放源代码的 ORM 框架,是主流的Java持久层框架之一,它对 JDBC进行了轻量级的对象封装,使得Java开发人员可以使用面向对象的编程思想来操作数据库.(2).Hibernate在三层架构中的位置上篇文章所讲的Struts2框架取代的是三层框架中的web层,而Hibernate框架取代的则是dao层,

Hibernate系列(二):简单编写HibernateUtil类来优化性能

相对于Hibernate系列(一)中的代码编写HibernateUtil类以提高程序的运行速度 首先,仍然要写一个javabean(User.java): package cn.itcast.hibernate.domain; import java.util.Date; public class User { private int id; private String name; private Date birthday; public int getId() { return id; }

[Hibernate系列—] 2. 创建SessionFactory 与 Session

Configuration 对象创建 要创建SessionFactory , 首先要创建Configuration 对象. 这个对象就是去读取hibernate 的一些配置信息. 默认状况下, hibernate会到 classPath 目录下加载hibernate.cfg.xml 文件. 这里延续上一篇的例子: [Hibernate系列-] 1. 下载与试用Hibernate(MySQL与Oracle 配置) 在Eclipse 中进行开发. 这个配置文件的方式可以有多种, 可以是xml , 可

Hibernate(2)——Hibernate的实现原理总结和对其模仿的demo

俗话说,自己写的代码,6个月后也是别人的代码……复习!复习!复习!涉及的知识点总结如下: 开源框架的学习思路(个人总结) Hibernate的运行原理总结 Hibernate实现原理中的两个主要技术 Java的反射技术的原理 反射的应用和例子 反射的缺点 编写一个模拟Hibernate的demo(V1.0版本) 后续的模拟ORM框架的设计思路 开源框架的学习思路(个人经验,欢迎提出意见) 框架是为了解决开发中遇到的一个个问题而诞生的,程序员是为了解决问题而学习框架的,这才是正确的学习之道!一个框

Hibernate之底层原理的7点整理和总结

开心一笑 [老婆想减肥,让老公帮她买减肥药,老公:吃药伤身,现在挺好,多有肉感啊.儿子:其实真有点胖,老公立刻瞪了儿子一眼:小孩子不知道别乱讲,你妈妈这身材我喜欢.然后,趁老婆不注意狠狠的教训了儿子:以后说话注意点,减肥药很贵的,你要告诉你妈,少吃点饭不就减下去了.都是套路啊--] 提出问题 关于Hibernate,个人的7点简单整理和总结??? 解决问题 1.Hibernate简单介绍 Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,它将POJO与

Hibernate系列4-----之删除

1.和它的增改查兄弟不同,多了个until包定义了HibernateUntil类,让我们来一起看看吧 1 public class HibernateUntil { 2 private static Configuration cfg=new Configuration().configure(); 3 private static SessionFactory factory=cfg.buildSessionFactory(); 4 5 //1.方法返回session 静态成员变量不能直接使用

Hibernate的工作原理

Hibernate的工作原理 1.读取并解析配置文件 2.读取并解析映射信息,创建SessionFactory 3.打开Session 4.创建事务Transation 5.持久化操作 6.提交事务 7.关闭Session 8.关闭SessionFactory Hibernate的工作原理