一开始学习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的精髓呀。
版权声明:本文为博主原创文章,未经博主允许不得转载。