簡單來說,按通常的系統設計,使用 jdbc 運算元據庫,業務處理邏輯和資料訪問邏輯是混雜在一起的。
一般基本都是如下幾個步驟:
1、建立資料庫連線,獲得 connection 物件。
2、根據使用者的輸入組裝查詢 sql 語句。
3、根據 sql 語句建立 statement 物件 或者 preparedstatement 物件。
4、用 connection 物件執行 sql語句,獲得結果集 resultset 物件。
5、然後一條一條讀取結果集 resultset 物件中的資料。
6、根據讀取到的資料,按特定的業務邏輯進行計算。
7、根據計算得到的結果再組裝更新 sql 語句。
8、再使用 connection 物件執行更新 sql 語句,以更新資料庫中的資料。
7、最後依次關閉各個 statement 物件和 connection 物件。
由上可看出**邏輯非常複雜,這還不包括某條語句執行失敗的處理邏輯。其中的業務處理邏輯和資料訪問邏輯完全混雜在一塊。而乙個完整的系統要包含成千上萬個這樣重複的而又混雜的處理過程,假如要對其中某些業務邏輯或者一些相關聯的業務流程做修改,要改動的**量將不可想象。另一方面,假如要換資料庫產品或者執行環境也可能是個不可能完成的任務。而使用者的執行環境和要求卻千差萬別,我們不可能為每乙個使用者每一種執行環境設計一套一樣的系統。
所以就要將一樣的處理**即業務邏輯和可能不一樣的處理即資料訪問邏輯分離開來,另一方面,關係型資料庫中的資料基本都是以一行行的資料進行訪問的,而程式執行卻是乙個個物件進行處理,而目前大部分資料庫驅動技術(如ado.net、jdbc、odbc等等)均是以行集的結果集一條條進行處理的。所以為解決這一困難,就出現 orm 這乙個物件和資料之間對映技術。
舉例來說,比如要完成乙個購物打折**的程式,用 orm 思想將如下實現(引自《深入淺出hibernate》):
業務邏輯如下:
public double calcamount(string customerid, double amount)
這樣**就非常清晰了,而且與資料訪問邏輯完全分離。設計業務邏輯**的時候完全不需要考慮資料庫jdbc的那些千篇一律的操作,而將它交給 customermanager 和 promotionmanager 兩個類去完成。這就是乙個簡單的 orm 設計,實際的 orm 實現框架比這個要複雜的多
什麼是ORM 為什麼要使用ORM
了解orm,先了解以下概念 什麼是 持久化 持久 persistence 即把資料 如記憶體中的物件 儲存到可永久儲存的儲存裝置中 如磁碟 持久化的主要應用是將記憶體中的資料儲存在關係型的資料庫中,當然也可以儲存在磁碟檔案中 xml資料檔案中等等。什麼是 持久層 持久層 persistence la...
什麼是ORM?為什麼要用ORM?
了解orm,先了解以下概念 什麼是 持久化 什麼是 持久層 什麼是orm 為什麼要做持久化和orm設計 重要 舉例來說,比如要完成乙個購物打折 的程式,用 orm 思想將如下實現 引自 深入淺出hibernate 業務邏輯如下 public double calcamount string cust...
什麼是ORM?為什麼要用ORM?
了解orm,先了解以下概念 什麼是 持久化 持久 persistence 即把資料 如記憶體中的物件 儲存到可永久儲存的儲存裝置中 如磁碟 持久化的主要應用是將記憶體中的資料儲存在關係型的資料庫中,當然也可以儲存在磁碟檔案中 xml資料檔案中等等。什麼是 持久層 持久層 persistence la...