ORM - 概述

优质
小牛编辑
133浏览
2023-12-01

什么是JDBC?

JDBC代表Java Database Connectivity 。 它提供了一组Java API,用于从Java程序访问关系数据库。 这些Java API使Java程序能够执行SQL语句并与任何SQL兼容的数据库进行交互。

JDBC提供了一种灵活的体系结构来编写独立于数据库的应用程序,该应用程序可以在不同的平台上运行,并且可以在不进行任

JDBC的优点和缺点

JDBC的优点JDBC的缺点

干净简单的SQL处理

大数据的良好性能

非常适合小型应用

简单的语法很容易学习

如果它用于大型项目,则很复杂

大量的编程开销

没有封装

很难实现MVC概念

查询是特定于DBMS的

为什么选择对象关系映射(ORM)?

当我们使用面向对象的系统时,对象模型和关系数据库之间存在不匹配。 RDBMS以表格格式表示数据,而面向对象的语言(如Java或C#)将其表示为对象的互连图。

考虑以下具有适当构造函数和相关公共函数的Java类 -

public class Employee {
   private int id;
   private String first_name; 
   private String last_name;   
   private int salary;  
   public Employee() {}
   public Employee(String fname, String lname, int salary) {
      this.first_name = fname;
      this.last_name = lname;
      this.salary = salary;
   }
   public int getId() {
      return id;
   }
   public String getFirstName() {
      return first_name;
   }
   public String getLastName() {
      return last_name;
   }
   public int getSalary() {
      return salary;
   }
}

考虑将上述对象存储并检索到以下RDBMS表中 -

create table EMPLOYEE (
   id INT NOT NULL auto_increment,
   first_name VARCHAR(20) default NULL,
   last_name  VARCHAR(20) default NULL,
   salary     INT  default NULL,
   PRIMARY KEY (id)
);

第一个问题,如果我们需要在开发了几页或我们的应用程序后修改数据库的设计怎么办? 其次,在关系数据库中加载和存储对象会使我们面临以下五个不匹配问题 -

Sr.No.不匹配和描述
1

Granularity

有时您将拥有一个对象模型,该类型的数量多于数据库中相应表的数量。

2

Inheritance

RDBMS没有定义类似于继承的任何东西,这是面向对象编程语言中的自然范例。

3

Identity

RDBMS恰好定义了“同一性”的一个概念:主键。 但是,Java定义了对象标识(a == b)和对象相等(a.equals(b))。

4

Associations

面向对象语言表示使用对象引用的关联,而RDBMS表示关联作为外键列。

5

Navigation

您在Java和RDBMS中访问对象的方式根本不同。

O bject- R elational M apping(ORM)是处理所有上述阻抗不匹配的解决方案。

什么是ORM?

ORM代表O bject- R elational M apping(ORM)是一种编程技术,用于在关系数据库和面向对象的编程语言(如Java,C#等)之间转换数据。

与普通JDBC相比,ORM系统具有以下优势 -

Sr.No.好处
1让业务代码访问对象而不是数据库表。
2隐藏来自OO逻辑的SQL查询的详细信息。
3基于JDBC'引擎盖'。
4无需处理数据库实现。
5实体基于业务概念而非数据库结构。
6事务管理和自动密钥生成。
7应用程序的快速发展。

ORM解决方案由以下四个实体组成 -

Sr.No.解决方案
1用于对持久化类的对象执行基本CRUD操作的API。
2用于指定引用类的类和属性的查询的语言或API。
3用于指定映射元数据的可配置工具。
4一种与事务对象交互以执行脏检查,延迟关联提取和其他优化功能的技术。

Java ORM框架

Java中有几个持久性框架和ORM选项。 持久框架是一种ORM服务,用于将对象存储和检索到关系数据库中。

  • Enterprise JavaBeans Entity Beans
  • Java数据对象
  • Castor
  • TopLink
  • SpringDAO
  • Hibernate
  • And many more

最后更新:

类似资料

  • 概述 国际化和本地化的目的就是让一个网站应用能做到根据用户语种和指定格式的不同而提供不同的内容。 Django 对文本翻译, 日期、时间和数字的格式化,以及时区提供了完善的支持。 实际上,Django做了两件事: 由开发者和模板作者指定应用的哪些部分应该翻译,或是根据本地语种和文化进行相应的格式化。 根据用户的偏好设置,使用钩子将web应用本地化。 很显然,翻译取决于用户所选语言,而格式化通常取决

  • 虽然Django 满满的便捷性让Web 开发人员活得轻松一些,但是如果不能轻松地部署你的网站,这些工具还是没有什么用处。Django 起初,易于部署就是一个主要的目标。有许多优秀的方法可以轻松地来部署Django: 如何使用WSGI 部署 部署的检查清单 FastCGI 的支持已经废弃并将在Django 1.9 中删除。 如何使用FastCGI、SCGI 和AJP 部署Django 如果你是部署D

  • 本书概述 进程的概念大家都很熟悉,但你是否能准确说出僵尸进程的含义呢?还有 COW(Copy On Write)、Flock(File Lock)、Epoll 和 Namespace 的概念又是否了解过呢? 本书汇集了进程方方面面的基础知识,加上编程实例,保证阅读后能自如地回答以上问题,在项目开发中对进程的优化也有更深的理解。 本书架构 本书按循序渐进的方式介绍进程的基础概念和拓展知识,主要涵盖以

  • Docker在1.12.0和以上版本中增加了swarm模式。通过swarm模式管理的Docker Engines集群称之为“Swarm”。并可以通过Docker CLI来创建Swarm,在Swarm中部署应用服务,以及管理Swarm。 功能特点 在Docker Engines中集成了集群管理功能:通过Docker CLI可以创建一个用来发布应用services的swarm,而不需要安装其他任何额外

  • 这是 Elasticsearch 官方的 PHP 客户端。我们把 Elasticsearch-PHP 设计成低级客户端(低级设计模式),使用时不会偏离 REST API 的用法。 客户端所有方法几乎都与 REST API 对应,而且也与其他编程语言的客户端(如 ruby, python 等)方法结构相似。我们希望这种对应方式可以方便开发者更加容易上手客户端,且以最小的代价快速从一种编程语言转换到另

  • 特点 为什么用 Groovy?