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的get菲尔德(Field)s()、getMethods()和getConstructors()方法取得相应的性质、方法和构造方法。通过菲尔德(Field)(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地图