对象关系映射(Object-Relation Mapping)是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术。
ORM在面向对象模型与关系模型之间架起桥梁。
通过对象与数据库之间映射的元数据,自动透明地把java中的对象持久化到关系数据库里,对数据库的操作可以转换为对对象的操作
使用ORM的好处:
效率:抛弃冗长乏味的持久化代码,集中精力编写业务逻辑。
可维护性:逻辑清晰,维护更少的代码,模型之间的缓冲避免牵一发而动全身
可移植性:
Hiberate在实现ORM功能的时候主要的文件有:映射类,映射文件以及数据库配置文件,他们的作用如下。
- 映射类(*.java):它的作用是描述数据库表的结构,表总的字段在类中描述成属性,把表中的记录映射成该类的对象。
- 映射文件(*.hbm.xml):它的作用是指定数据库表和映射类之间的关系,包括映射类和数据库表的映射关系,表字段和类属性类型的对应关系以及表字段和类属性名称的对应关系等
- 数据库配置文件(*.cfg.xml或*.properties):它的作用是指定与数据库连接时需要的连接信息,比如连接哪个数据库,登录用户名,密码以及连接字符串等。
如何解析java类文件:
在java类中有一种机制叫反射机制,使用这种机制我们可以得到类的信息,包括类的修饰符、属性、方法、构造方法、继承的父类、以及实现的借口等等。
- getName():得到类名
- getFiles():类属性
- getMethods():类方法
- getConstructors():类构造方法
- getSuperclass():父类
- getInterfaces():类接口
我们可以首先通过以上方法获取类中的属性名,然后拼写成setXXX和getXXX方法名,最后根据方法名执行对应的方法,将数据库数据加载到对象中。
目前众多厂商和开源社区都提供了持久层框架的实现,常见的有:
Apache OJB ()
Cayenne ()
Jaxor ()
Hibernate ()
iBatis ()
jRelationalFramework ()
mirage ()
SMYLE ()
TopLink ()
其中 Hibernate 的轻量级 ORM 模型逐步确立了在 Java ORM 架构中领导地位