位置:首頁 > Java技術 > hibernate > ORM是什麼?ORM介紹

ORM是什麼?ORM介紹

JDBC是什麼?

JDBC代表Java數據庫連接,並提供一組Java API,用於Java程序訪問關係數據庫。這些Java的API允許Java程序執行SQL語句,並與任何SQL兼容的數據庫進行交互。

JDBC提供了一個靈活的架構來編寫一個獨立於數據庫應用程序,它可以在不同的平台上運行,並與不同的數據庫管理係統交互,而無需任何修改。

JDBC的優點和缺點

JDBC的優點 JDBC的缺點
  • 乾淨和簡單的SQL處理

  • 良好的性能與大數據

  • 用於小型應用很不錯

  • 簡單,語法很容易學習

  • 複雜,如果它被用在大型工程項目

  • 大的編程開銷

  • 無封裝

  • 難以實現MVC的概念

  • 查詢是具體的數據庫管理係統

為什麼用對象關係映射(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)
);

第一個問題,如果我們需要開發有幾頁或我們的應用程序後,修改數據庫的設計?其次,加載並存儲對象在關係數據庫使我們麵臨以下五大不匹配的問題。

不匹配 描述
Granularity 有時候,將有哪些具有比在數據庫中對應的表的數目更多的類的對象模型。
Inheritance RDBMS中冇有定義任何類似繼承是麵向對象編程語言的自然範式。
Identity 關係數據庫定義的'千篇一律'隻有一個概念:主鍵。但是,Java定義了對象標識(a== b)和對象相等(那麼a.Equals(b))
Associations 麵向對象的語言表示使用的對象引用,其中的上午RDBMS代表一個協會作為一個外鍵列關聯。
Navigation 訪問Java和關係數據庫對象的方法是根本不同。

對象 - 關係映射(ORM)是解決處理所有上述阻抗失配。

什麼是ORM?

ORM代表對象 - 關係映射(ORM)是一種編程技術的ORM係統已通過純JDBC的優點如下關係數據庫和麵向對象的編程語言,如Java,C#等之間轉換數據

S.N. 優點
1 讓業務代碼訪問對象,而不是數據庫表。
2 隱藏了麵向對象的邏輯SQL查詢詳情。
3 基於JDBC的“引擎蓋下”
4 無需處理數據庫實現。
5 基於業務概念,而不是數據庫結構的實體。
6 事務管理和自動密鑰生成。
7 應用程序的快速開發。

ORM解決方案由以下四種實體:

S.N. 解決
1 一個API來對持久化類的對象執行基本的CRUD操作。
2 語言或API來指定引用的類和類的屬性查詢。
3 一個可配置的設備,用於指定映射元數據。
4 技術與事務對象交互,以執行臟數據檢查,懶關聯加載,以及其他優化功能。

Java ORM框架:

有幾種持久性框架和Java的ORM方案。持久性框架是一個ORM的服務,存儲和檢索對象到關係型數據庫。

  • 企業JavaBeans實體Bean

  • Java Data Objects

  • Castor

  • TopLink

  • Spring DAO

  • Hibernate

  • And many more