标签:数据库操作 nts 总结 简单介绍 开发者 新技术 ssi 性能 编程开发
在编程开发中,我们有非常多框架,他们有些非常方便,也非常有用,今天我们一起来认识一个java经典的框架Hibernate,Hibernate英文名称为“冬眠”。这是个非常有意思的技术,相同这个名字也非常巧妙!
大家先看看这个技术的书籍在国外的封面:
大家知道冬眠的动物是精巧的,在冻僵的边缘,而Hibernate的一个巨大作用就是对数据持久化的实现。这两者有什么联系?
简介数据持久化:
数据持久化是解决程序与数据库之间交互訪问的问题,使程序不直接訪问数据库,而是直接訪问Session会话,然后由Session会话与数据库“打交道”。
仅仅要确保,程序每次訪问Session中的数据时,与数据库中的数据保持一致,就不会出现错误。
而冬眠的功效就会由这个Session会话体现,我们的程序不直接面对数据库,延迟(冬眠)到Session会话,我们能够将Session会话理解为缓存!
你好奇吗?这个实现是怎么完毕的呢?
我们先宏观上看看他的神奇面纱:
而我们看看採用ORM之后的优点和缺点
长处:
1,提高生产力——轻松开发
2,更加对象化——消除关系领域——阻抗不匹配
3,可移植性——请
4,没有侵入性——測试简单,支持透明持久化
缺点:
1,数据库特性语句——难调优
2,对大批量数据更新有问题
3,系统中存在大量统计查询——混合应用
而在此,Hibernate对我们最大的帮助就是使我们採用对象化思维操作关系型数据库!
到了C#阶段,我们个人重构和合作开发期间,我们不只做到了VB对数据库连接的封装,我们对表的操作也做了一系列的封装。大家看看这个类图:
而在Hibernate中。我们看看他的结构:
我们发现,在学习Hibernate时。这项技术,是我们想对象化操作数据库,而不用考虑详细结构的一个非常好实现,我们曾经的自己实现的能够说是Hibernate的一个雏形。而在Hibernate中,除了这些,另一个不错的技术体现了他冬眠的另一层含义:
延迟载入
这样的初始化策略仅仅在一个对象调用它的一对多或多对多关系时才将关系对象读取出来。这个过程对开发人员来说是透明的,并且仅仅进行了非常少的数据库操作请求,因此会得到比較明显的性能提升。
自己理解:
他的这样的技术。是将数据库的封装好的关系在使用对象调用时,延迟载入,仅仅有我调用了这个关系,我才会载入关系附属的那些对象,这样,假设我们仅仅使用一个对象,就不会调用关系映射给他的对象!
生活中的映射:
这些技术在生活中的有应用吗?这必定是有应用的。或许你想不到,我们天天在用!
一个最简单的样例,开会,我们在生活中,每一个小区都会有居委会,每一个城区都会有区级管理机构,国家开会,会有各级人大代表,而这些机制就是我们延迟载入的一个映射,比方A县城下有B,C,D三个城区。市里布置任务,A县代表去开会,带着B.C.D三个城区的代表。市里有任务是对A说的,除非详细到某个城区。否则BCD就不用出现。而一旦有详细任务,详细到某个区,仅仅要暂时叫到会议室就OK了!
标签:数据库操作 nts 总结 简单介绍 开发者 新技术 ssi 性能 编程开发
原文地址:http://www.cnblogs.com/blfbuaa/p/7293807.html