Hibernate XML格式分析

开发 后端
这里介绍映射文件是Hibernate XML格式,数据库配置文件也可以是Hibernate XML格式,因此如果能解析XML文件我们就可以获取这两个文件的信息。

本文向大家介绍Hibernate XML格式,可能好多人还不了解Hibernate XML格式,没有关系,看完本文你肯定有不少收获,希望本文能教会你更多东西。

1.如何解析XML文件

映射文件是Hibernate XML格式,数据库配置文件也可以是Hibernate XML格式,因此如果能解析XML文件我们就可以获取这两个文件的信息。XML文件格式我简单做下介绍,比如<name sex=“male”>tom</name>这句就是一个Hibernate XML格式的描述,name代表节点,节点必须有开始标记<name& gt;和结束标记</name>,在开始标记中我们可以添加一些属性的声明比如sex.解析XML的技术可以分为两类那就是SAX和DOM,这两种方式的差别和优缺点大家可以上网查阅或者我们会在以后的文章中提出,请大家关注。

实现解析XML文件的功能很方便,我们可以通过下载第三方的一些工具包如xml-apis.jar和xercesImpl.jar等,也可以使用JDK自带的工具类 DocumentBuilderFactory、DocumentBuilder、Document、Element等等,大家可以通过API文挡查阅这些类的说明。通过这些类我们可以把XML文件的信息读入内存并通过类中的某些方法获取指定节点的名字、值、属性名、属性值这些信息。

2.解析Properties文件

数据库配置文件可以是Hibernate XML格式也可以是Properties格式,Properties文件一般采用“属性名=属性值”的形式描述信息。如果配置文件采用Properties文件描述,我们就需要想办法解析这种类型的文件了。想解析Properties文件大家就需要熟悉Properties这个类了,这个类有一些常用方法比如,load()加载指定文件并读取文件中的属性信息,PropertyNames()返回所有属性名,getProperty()返回指定属性名的属性值。通过解析Properties文件我们可以得到连接数据库必要的信息,然后通过底层JDBC技术与数据库建立连接。

3.解析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还使用了事务控制、缓存控制等很多技术 .

【编辑推荐】

  1. Hibernate3.1简单描述
  2. Hibernate save基础简介
  3. 浅析Hibernate 3二级缓存基础
  4. Hibernate流行架构浅析
  5. Hibernate update浅谈
责任编辑:佚名 来源: BlogJava
相关推荐

2009-09-29 15:58:22

Hibernate映射

2009-09-22 14:44:18

Hibernate.c

2009-09-29 15:52:26

Hibernate X

2009-09-23 16:39:51

Hibernate s

2009-09-22 11:30:57

2009-09-22 17:47:03

Hibernate s

2009-09-28 15:38:12

Hibernate P

2009-09-22 14:23:37

Hibernate S

2009-09-23 13:33:51

Hibernate属性

2009-09-24 09:35:47

Hibernate插入

2009-09-23 10:28:16

Hibernate映像

2023-08-31 07:55:21

Android系统压缩处理

2009-09-24 13:12:20

Hibernate原生

2009-09-21 14:24:08

Hibernate3.

2009-09-29 10:40:26

Hibernate业务

2009-09-22 11:24:07

Hibernate查询

2009-09-25 14:04:12

Hibernate读取

2009-09-24 13:49:31

Hibernate自增

2009-09-23 15:25:08

Hibernate 3

2009-06-16 13:27:59

Hibernate x
点赞
收藏

51CTO技术栈公众号