首页 > 编程知识 正文

jfinal框架,go orm 框架比较

时间:2023-05-06 00:07:29 阅读:155804 作者:3835

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

广义上,ORM是面向对象的对象模型和关系数据库数据结构之间的相互转换。

狭义上理想情况下,基于这种面向对象的接口来持久化OO对象不需要了解关系数据库存储数据的实现细节。

ORM思想其实是表的实体与表之间的相互转换。

在实际操作中,(1)将表的实体变化转换为数据库。

(2)将表数据转换为表实体。

温柔的黑米开发APP时(不使用O/R Mapping ),可能会写很多用于从数据库中保存、删除、读取对象信息等的数据访问层的代码。 你在DAL上写了很多方法来读取对象的数据,或者改变状态的对象。 这些代码总是重复写的。

ORM解决的主要问题是对象关系的映射。 域模型和关系模型分别基于概念模型。 域模型是面向对象的,而关系模型是面向关系的。 通常,持久化类对应于表,类的每个实例对应于表中的一条记录,而类的每个属性对应于表中的每个字段。 实质上,一个O/R Mapping会为你生成DAL。 与其自己写DAL代码,不如用O/R Mapping。 您在O/R Mapping中保存、删除和加载对象,O/R Mapping负责生成SQL。 你只需要在意对象就行了。

ORM优缺点优点

通过提高开发效率,降低开发成本,使开发更具针对性、可移植性,数据缓存等附加功能缺点

要使关系数据库的映射自动化,必须消耗系统的性能。 其实这里的性能消耗没问题。 一般可以忽略。 处理多表合并检查和where条件复杂的查询时,ORM的语法会变得复杂。 ORM和DB helper Library很多人可能接触过这样的helper。 每个公司都有自己的Helper。 许多Helper提供了许多强大的功能,包括封闭交互的基础、实体类支持和SQL翻译功能。 ORM只提供了比这些Helper更多的一层,它尝试映射封闭的、自动化的或文件以实现关联。 以前,这是我们用手打的。 (灵活地替换数据库也有ORM的优势,ORM的优势和劣势。)

问题是,一些人发现了封闭的自动化关联以满足需求,ORM对他来说很成功。 有些人发现封闭的自动化关联不适合他们的项目,所以ORM温暖的兔子。

我的观点是ORM试图取代helper,并为此提供了更多的功能。 他在不断发展,以应对更为严峻和复杂的企业需求。 在许多情况下,这些工具开始具有自己的复杂性,因此开发人员需要学习使用它们的详细规则,并修改组成APP应用程序的类以满足映射系统的需要。 使用这些工具将涵盖所获得的好处。 在我们的大多数项目中,Helper仍然是我们构建数据持久层的主力。 虽然ORM可能可以在某些项目(模块)中独占一切,但ORM (目前)无法面对所有的挑战。

数据持久化ORM使用描述对象和数据库之间的映射的元数据,自动将程序中的对象持久化到关系数据库中。 那么,到底如何实现可持续化呢? 一个简单的方法是采用硬编码方法为所有可能的数据库访问操作提供单独的方法。

该方案存在以下不足:

1. 持久化层缺乏弹性。 业务需求发生变化时,需要修改持久化层的接口

2 持久化层同时绑定到域模型和关系数据库模型,无论域模型还是关系数据库模型发生变化,毒药都会修改持久化的相关程序代码,软

ORM提供了实现持久层的另一种模式,利用映射元数据描述对象关系的映射,使ORM中间件能够在哪个APP的业务逻辑层和数据库层之间架起桥梁。 Java的典型ORM中间件是:Hibernate、ibatis和speedframework。

持久化是指将内存中的数据模型转换为存储模型和将存储模型转换为内存中的数据模型的总称。数据模型可以是任何数据结构或对象模型,存储模型是关系模型

狭义的理解是,持久化只是将对象数据持久地保存在数据库中,数据在计算机中一般有两个存储处,存储器是临时的,数据库是永久保存的; 广义的理解是,持久化涉及与数据库相关的各种操作,封装数据访问细节,并为大多数业务逻辑提供面向对象的API。

数据持久化的好处:

松散耦合,程序代码复用性强,持久化不依赖于基础数据库和上层业务逻辑的实现,交换数据库时只需修改配置文件而不修改代码即可。 业务逻辑的代码可读性强,代码中没有大量的SQL语言,从而提高程序的可读性。 持久化技术可自动优化,减少数据库访问,提高程序执行效率

数据持久化对象的基本操作是保存、更新、删除、查询等。

由此可见,由于数据持久层是与数据交互的层,所以有时会看到ORM框架的介绍:数据持久层(ORM )框架

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。