什么是ORM?

什么是ORM?,第1张

ORM是对象关系映射(英语:(Object Relational Mapping,简称ORM,或O/RM,或O/R mapping),是一种程序技术,用于实现面向对象编程语言里不同类型系统的数据之间的转换。从效果上说,它其实是创建了一个可在编程语言里使用的--“虚拟对象数据库”。

(ORM is Object Relational Mapping (ORM, or O/RM, or O/R Mapping), a programming technique used to transform data between different types of systems in an object-oriented programming language. In effect, it creates a "virtual object database" that can be used in a programming language.)

拓展资料

ORM的由来:面向对象是从软件工程基本原则(如耦合、聚合、封装)的基础上发展起来的,而关系数据库则是从数学理论发展而来的,两套理论存在显著的区别。为了解决这个不匹配的现象,对象关系映射技术应运而生。

参考资料:百度百科《ORM》

ORM---对象关系映射模型,是Hibernate的核心模型。

它指的是在单个组件内负责所有实体域对象的持久化,封装数据访问的细节。简单的说是实现三层模式中业务逻辑与数据访问的分离。

一般的,对数据库的 *** 作是通过JDBC实现的:举例看下:

public void delete(Object o)

{

Connection con = null

PreparedStatement stmt = null

try{

con = getConnection()

if(o.getID != null ){

stmt = con.preparedStatement("DELETE FROM user where" +"id=""123456")

stmt.setID(0,o.getId())

stmt.executeUpdate()

con.commit()

}

catch(Exception e)

{

e.printStackTrace()

}

}

}

我们可以从上面的代码中发现,数据访问语句(SQL)与业务逻辑处理混在一起了。有经验的人会知道,这样对开发维护都造成很大影响。

可是,有人会说,将那些数据访问的代码封装在一个类中,提供API不就可以解决问题了。

但是问题不是那么简单,尽管将那些访问 *** 作的实现都封装在一起了,但是同意会遇到一些问题,封装类中会充满很多相类似的方法,比如CURD等 *** 作都需要查询,每个方法都要写入查询的语句会使得程序看起来相当臃肿。而且主要问题还是没有得到很好的解决――――持久化层的同时又与关系模型和域模型耦合了,而且咋看之下还显得缺乏d性。

对象关系映射(英语:Object Relational Mapping,简称ORM,或O/RM,或O/R mapping)

对象关系映射,是一种程序设计技术,用于实现面向对象编程语言里不同类型系统的数据之间的转换。

从效果上说,它其实是创建了一个可在编程语言里使用的“虚拟对象数据库”。如今已有很多免费和付费的ORM产品,而有些程序员更倾向于创建自己的ORM工具。ORM相当于中继数据,对象关系映射成功运用在不同的面向对象持久层产品中。

ORM框架

常见的ORM框架有:Hibernate、iBatis 等。Hibernate的O/R Mapping实现了POJO 和数据库表之间的映射,以及SQL的自动生成和执行。

Mybatis:主要着力点在于 POJO 与 SQL 之间的映射关系。然后通过映射配置文件,将SQL所需的参数,以及返回的结果字段映射到指定 POJO 。

相对Hibernate“O/R”而言,Mybatis 是一种“Sql Mapping”的ORM实现。

以上内容参考:百度百科-对象关系映射


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10825003.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-11
下一篇 2023-05-11

发表评论

登录后才能评论

评论列表(0条)

保存