怎么解释ORM

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎么解释ORM相关的知识,希望对你有一定的参考价值。

RT

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等操作都需要查询,每个方法都要写入查询的语句会使得程序看起来相当臃肿。而且主要问题还是没有得到很好的解决――――持久化层的同时又与关系模型和域模型耦合了,而且咋看之下还显得缺乏弹性。
参考技术A ORM,是一对一注册营销的英文简称。

一对一注册营销模式,是指以人为本、以客户为中心,通过建立保护销售者利益制度,支持一个企业的多种分销成员在同一个分销市场并存,并确保目标市场的每一个客户始终只由一个分销成员提供关系营销、定制营销、情感营销和集约营销服务的计算机程序与营销方法和管理规则的集合,英文即One-To-One registration Marketing,简称ORM。

这里所指的一个分销成员,既可以是一个自然人,如制造商的销售员、总代理商的销售员、特许代理商的销售员、契约式推销员、经纪人,也可以是一个分销机构,如制造商的销售机构、特许代理商、经纪人事务所/经纪人/行纪人/居间人。

一对一注册营销模式包括:《一对一注册营销核心技术》、《一对一注册营销规则》和《一对一注册营销数据库》。

ORM注入和SQL注入有啥区别?

【中文标题】ORM注入和SQL注入有啥区别?【英文标题】:What are the differences between ORM injection and SQL injection?ORM注入和SQL注入有什么区别? 【发布时间】:2014-11-06 11:18:07 【问题描述】:

我读过 ORM 注入和 SQL 注入。在许多站点中,从测试人员的角度来看,ORM 注入几乎与 SQL 注入相同。所以基本上我想知道的是ORM和SQL注入之间的主要区别。

如果还解释了有关 ORM 的简要想法,将会很有帮助。

【问题讨论】:

【参考方案1】:

显然 SQL 注入和 ORM 注入似乎是相同的。但是它们之间是有区别的。 ORM注入攻击是使用SQL注入攻击进行的。 ORM 生成的对象可以使用 SQL 对数据库执行基本操作,例如创建、更新、删除。因此,间接地,可以对输入参数未正确清理的此类对象执行 SQL 注入攻击! :)

【讨论】:

以上是关于怎么解释ORM的主要内容,如果未能解决你的问题,请参考以下文章

DAO vs ORM - 在 Sequelize.js 的上下文中解释的概念

解释一下啥是MVC,IOC,AOP,ORM,JNDI,,Hibernate,SSO、Portal

Django ORM queryset object 解释(子查询和join连表查询的结果)

django-orm简记

使用 ORM 生成的实体作为多态的域对象

在 Hibernate ORM 中总是需要 DAO 层?