我的问题是关于 ORM 和 JDBC 技术,与 JDBC 和其他方式相比,您决定采用 ORM 技术的标准是什么?
谢谢。
最佳答案
JDBC
- 使用 JDBC,开发人员必须编写代码来将对象模型的数据表示映射到关系数据模型及其对应的数据库架构。
- 使用 JDBC,Java 对象与数据库表的自动映射以及反之转换将由开发人员通过代码行手动处理。
- JDBC 仅支持原生结构化查询语言 (SQL)。开发人员必须找出访问数据库的有效方法,即从多个查询中选择有效的查询来执行相同的任务。
- 使用 JDBC 处理具有大量数据库特定代码的持久性数据(数据库表)的应用程序。将表数据映射到应用程序对象(反之亦然)的代码实际上是将表字段映射到对象属性。随着表更改或数据库更改,更改对象结构以及更改编写以将表映射到对象/对象到表的代码至关重要。
- 使用 JDBC,开发人员有责任处理 JDBC 结果集并通过代码将其转换为 Java 对象,以便在应用程序中使用这些持久数据。因此,使用 JDBC,Java 对象和数据库表之间的映射是手动完成的。
- 使用 JDBC,缓存是通过手动编码来维护的。
- 在 JDBC 中,没有检查是否总是每个用户都有更新的数据。此检查必须由开发人员添加。
hibernate 。
- Hibernate 是一种灵活而强大的 ORM 解决方案,用于将 Java 类映射到数据库表。 Hibernate 本身使用 XML 文件处理这种映射,因此开发人员不需要为此编写代码。
- Hibernate 提供透明的持久性,开发人员在与 RDBMS 交互期间无需显式编写代码来将数据库表元组映射到应用程序对象。
- Hibernate 提供了一种功能强大的查询语言 Hibernate 查询语言(独立于数据库类型),它以熟悉的类似 SQL 的语法表示,并且包括对多态查询的完全支持。 Hibernate 还支持原生 SQL 语句。它还选择了一种有效的方式来为应用程序执行数据库操作任务。
- Hibernate 自己提供这种映射。表和应用程序对象之间的实际映射是在 XML 文件中完成的。如果数据库或任何表中发生更改,则只需更改 XML 文件属性。
- Hibernate 通过自己维护对象-表映射来减少代码行数,并将结果以 Java 对象的形式返回给应用程序。它使程序员从手动处理持久数据中解放出来,从而减少了开发时间和维护成本。
- hibernate ,具有透明持久性,缓存设置为应用程序工作空间。作为查询的结果,关系元组被移动到这个缓存中。如果客户端应用程序为相同的写入多次读取相同的数据,它会提高性能。自动透明持久性允许开发人员更多地关注业务逻辑而不是此应用程序代码。
- Hibernate 使开发人员能够为应用程序定义版本类型字段,由于这个定义的字段,Hibernate 会在每次关系元组以 Java 类对象的形式更新到该表时更新数据库表的版本字段。因此,如果两个用户检索到相同的元组然后对其进行修改,并且一个用户将修改后的元组保存到数据库,Hibernate 会自动更新此元组的版本。当其他用户尝试将更新的元组保存到数据库时,它不允许保存它,因为该用户没有更新的数据。
关于java - ORM 技术与 JDBC?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1575762/