1.什么是ORM 
ORM的完备是Object Relational
Mapping,即对象关联映射。它的贯彻思想就是是将关系数据库中表的数量映射成为目标,以目标的样式展现,这样开发人员就足以管针对数据库的操作转化为对这些目标的操作。因此它的目的是为着有利于开发人员以面向对象的想来实现对数据库的操作。

2.什么是Hibernate 
对此Hibernate的号称有成千上万,比如工具、技术、框架和解决方案等,这些都可,重要的凡大家而明了它们的意。在这边我习惯性称它吗框架,它是均等种植能兑现ORM的框架。能落实ORM这个职能的框架来许多,Hibernate可以说凡是这些框架中极度流行、最让开发者关注之,甚至连JBoss公司呢管其接受进来,利用它以好之项目面临贯彻ORM功能。

3.ORM的贯彻原理 
现在在Java领域大家对Hibernate的座谈很多,比如她的优缺点、如何使用、错误如何化解与将它和Struts/Spring等框架相结合作为一切系统的解决方案。在这边我思念以及豪门探讨一些再特别层次的话题,那即便是Hibernate是安兑现ORM的职能?如果吃咱好开同慢慢悠悠实现ORM功能的框架需要怎么开?其实这些题目虽是绕着一个乐章,那即便是“映射”,如果我们理解什么样兑现这种映射那么我们啊能够出有团结之同一缓慢ORM框架。会动用Hibernate的开发人员都晓得,在运用其实现ORM功能的时光,主要的文件发出:映射类(*.java)、映射文件(*.hbm.xml)以及数据库配置文件(*.properties或*.cfg.xml),它们各自的企图如下。 
⑴映射类:它的用意是描述数据库表的布局,表中的字段在类似吃吃叙成属性,将来便可兑现将表中的笔录映射成为该类的对象。 
⑵映射文件:它的企图是指定数量库表和映射类之间的干,包括映射类和数量库表的对应关系、表字段和类属性类型的附和关系和表字段和类属性名称的呼应关系等。 
⑶数据库配置文件:它的意图是点名同数据库连接时得之连接信息,比如总是哪吃数据库、登录用户称、登录密码以及连续字符串等。 
于当时三种要的文本中,映射类为常见Java源文件、映射文件呢XML格式、数据库配置文件呢Properties格式或者是XML格式。想了解“映射”首先我们用懂得怎么样分析这三种植文件,即解析XML格式文件、解析Properties格式文件和解析Java类文件。

脚我们来分别追究一下怎样实现这些文件之解析。 
⑴如何解析XML文件 
前我们说罢映射文件是XML格式,数据库配置文件呢可以是XML格式,因此若能解析XML文件我们尽管可落这点儿单公文之信息。XML文件格式我简单做下介绍,比如<name
sex=”male”>tom</name>这句就是一个XML格式的叙述,name代表节点,节点必须发起标记<name>和终止标记</name>,在开始标记中我们得以添加一些特性的扬言比如sex。解析XML的技巧好分为两好像那就是SAX和DOM,这点儿种植艺术的异样和优缺点大家好上网查看或我们见面在后来的章中提出,请大家关心。实现解析XML文件的力量很有益于,我们可由此下载第三正在的组成部分工具包如xml-apis.jar和xercesImpl.jar等,也得以应用JDK自带的工具类DocumentBuilderFactory、DocumentBuilder、Document、Element等等,大家可以透过API文挡查阅这些类似的说明。通过这些类似我们可以将XML文件之音读入内存并通过类似吃之某些方法赢得指定节点的讳、值、属性名、属性值这些消息。 
⑵解析Properties文件 
数据库配置文件可以是XML格式也得是Properties格式,Properties文件一般用“属性名=属性值”的形式描述信息。如果安排文件采用Properties文件讲述,我们便得想艺术解析这种类型的公文了。想解析Properties文件大家便需要熟悉Properties这个仿佛了,这个仿佛产生一对常用方法以,load()加载指定文件并读取文件中之性信息,PropertyNames()返回所有属于性名,getProperty()返回指定属性名的属性值。通过分析Properties文件我们得以落连续数据库必要之信息,然后通过底部JDBC技术及数据库建立连接。 
⑶解析Java类文件 
由此解析映射文件和数据库配置文件我们可以成立数据库的连日,可以拿走映射类的讳、属性名、数据库表名、字段名及项目等信息。要拿数据库中表的数量映射成为目标,首先得把表中的笔录取出,然后用每个字段值给映射类对象的每个属性,这个赋值过程要调用对象吃的set方法。我们现在透过炫耀文件就了解类名和属性名,如何根据类名和属性名调用相应的set和get方法,是一个关键问题。在Java中来同等栽机制于反射机制,使用这种体制我们可落近似的音信,包括类才所以之修饰符、方法、属性、继承的父类以及贯彻接口等信息。反射机制相关的类有Class、Field、Method以及Constructor等。通过Class的getFields()、getMethods()和getConstructors()方法取得相应的性质、方法和构造方法。通过Field类的getName()、getType()和getModifiers()方法获得相应的属于性名、属性类型、属性修饰符信息。通过Method类getReturnType()可以取方式的回路,invoke()方法可因加的方法名和参数值执行对象吃对应之方。我们得率先通过上述办法取得类吃的属于性名,然后拼写成setXXX和getXXX方法名,最后根据办法名实施相应之措施,将数据库数据加载到对象吃。 
此外要实现Hibernate机制还见面波及到一个技术点,那就算是何许获取数据库底系信息。要落实之职能,就得大家了解JDBC的DataBaseMetaData类和ResultSetMetaData类,通过这半单近乎的法门我们就足以获取数据库表的许段名、类型、大小等连锁消息。 
当此间我只是于大家将贯彻ORM功能的部分关键技术提了出来,通过者介绍大家对ORM机制应发个盖了解,比如通过分析数据库配置文件获取数据库连接信息并确立连接,通过解析映射文件可以获映射类名、属性名、表名以及字段名等信息,得到名字后透过反射机制可以落映射类信息,调用构造方法创建对象,调用每个属性之set方法为目标设值完成多少的装载。Hibernate就是使用这过程来促成ORM的,当然Hibernate还使用了工作控制、缓存控制等众多技艺……

转:http://www.cnblogs.com/bendantuohai/p/4711340.html

谢!

相关文章

网站地图xml地图