ORM框架(Object Relational Mapping)浅析

对象关系映射(Object Relational Mapping),简称ORM


一、概念解析

       对象和关系数据是业务实体的两种表现形式,业务实体在内存中表现为对象,在数据库中表现为关系数据。内存中的对象之间存在关联和继承关系,而在数据库中,关系数据无法直接表达多对多关联和继承关系。因此,对象-关系映射(ORM)系统一般以中间件的形式存在,主要帮助实现程序对象到关系数据库数据的映射。将面向对象语言程序中的对象自动持久化到关系数据库中。它的本质上就是将数据从一种形式转换到另外一种形式。因为在数据库中,尤其是关系型数据库. 是没有对象概念的,有的只是表格, 和数据记录。

  一个简单的映射例子(hibernate),我们定义User对象和数据库中user表之间的关联,user表中只有两列:id和name:
<hibernate-mapping>
  <class name="sample.orm.hibernate.User" table="user" catalog="test">
  <id name="userID" type="java.lang.Integer">
  <column name="id" />
  <generator class="assigned" />
  </id>
  <property name="userName" type="java.lang.String">
  <column name="name" />
  </property>
  </class>
  </hibernate-mapping>

二、实际应用

 1、在Mybatis中的逆向工程(反向生成实体映射)。因为Mybatis本身就属于一种半自动化的ORM框架,通过关系映射来生成实体类、接口、Mappering映射文件

  

  常见的ORM框架有:HibernateTopLink、Castor JDO、Apache OJB等。

三、与传统JDBC的区别

  1、简化代码

  ORM是对象和关系型数据库映射,是把Java中的JavaBean对象和数据库表进行映射,使数据库表中的记录和JavaBean对象一一对应,从而大大简化原来直接使用JDBC时,手工拼写SQL带来的不便。

  2、提高效率

  ORM通过配置文件,使数据库表和JavaBean类对应起来,提供简便的操作方法,增、删、改、查记录,不再拼写字符串生成SQL,编程效率大大提高,同时减少程序出错机率,增强数据库的移植性,方便测试。但是原生的JDBC具有更强的灵活性,适合复杂多变的SQL应用。

 

posted @ 2020-07-21 11:16  Any-D  阅读(137)  评论(0)    收藏  举报