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性。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)