日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

对象关系映射(ORM)介绍理解

發布時間:2023/12/29 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 对象关系映射(ORM)介绍理解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

問題背景

假設,讓你設計一個框架,把jdbc封裝一下??
JDBC操作步驟:

  • 獲取數據庫連接Connection
  • 創建操作命令對象Statement
  • 執行sql語句(sql中,如果有占位符,在執行sql語句前要替換,會使用很多字段來替換占位符(一般包裝成一個對象,通過對象屬性來操作))
  • 處理結果集(查詢操作)----通過結果集對象.get類型(”結果集表頭字段名“),設置到一個對象屬性之中
  • 釋放資源
  • 那么??使用JDBC操作是否方便呢?那么也就需要設計一個框架,來更好地操作數據庫!!!

    ORM是什么?為何要有ORM?

    我們在使用Django框架開發web應用的過程中,不可避免地會涉及到數據的管理操作(增、刪、改、查),而一旦談到數據的管理操作,就需要用到數據庫管理軟件,例如mysql、oracle、Microsoft SQL Server等。


    如果應用程序需要操作數據(比如將用戶注冊信息永久存放起來),那么我們需要在應用程序中編寫原生sql語句,然后使用pymysql模塊遠程操作mysql數據庫。


    針對應用程序的數據操作,直接編寫原生sql語句會存在兩方面的問題,嚴重影響開發效率,如下:

    • sql語句的執行效率問題:應用開發程序員需要耗費一大部分精力去優化sql語句
    • 數據庫遷移問題:針對mysql開發的sql語句無法直接應用到oracle數據庫上,一旦需要遷移數據庫,便需要考慮跨平臺問題

    為了解決上述問題,django引入了ORM的概念,ORM全稱Object Relational Mapping,即對象關系映射,是在pymysq之上又進行了一層封裝,對于數據的操作,我們無需再去編寫原生sql,取代代之的是基于面向對象的思想去編寫類、對象、調用相應的方法等,ORM會將其轉換/映射成原生SQL然后交給pymysql執行


    基于圖2所示,有了ORM框架,開發人員既不用再去考慮原生SQL的優化問題,也不用考慮數據庫遷移的問題,ORM都幫我們做了優化且支持多種數據庫,這極大地提升了我們的開發效率。

    簡單說,ORM 就是通過實例對象的語法,完成關系型數據庫的操作的技術,是"對象-關系映射"(Object/Relational Mapping) 的縮寫。ORM 把數據庫映射成對象。

    數據庫的表(table) --> 類(class) 記錄(record,行數據)--> 對象(object) 字段(field)--> 對象的屬性(attribute)

    數據庫設計表和字段時,也是同時設計java的實體類。

    示例理解

    這是一行sql語句:

    select id, first_name, last_name, phone, birth_date, sex from persons where id = 10;

    程序直接運行sql,操作數據庫的寫法如下:

    res = db.execSql(sql); name = res[0]["first_name"];

    使用 ORM的寫法:

    p = Person.get(10); name = p.first_name;

    一比較就可以發現,ORM 使用對象,封裝了數據庫操作,因此可以不碰 SQL 語言。開發者只使用面向對象編程,與數據對象直接交互,不用關心底層數據庫。

    ORM 優點

    • 數據模型都在一個地方定義,更容易更新和維護,也利于重用代碼。
    • ORM 有現成的工具,很多功能都可以自動完成,比如數據消毒、預處理、事務等等。
    • 它迫使你使用 MVC 架構,ORM 就是天然的 Model,最終使代碼更清晰。
    • 基于 ORM 的業務代碼比較簡單,代碼量少,語義性好,容易理解。
    • 你不必編寫性能不佳的 SQL。

    ORM 缺點

    • ORM 庫不是輕量級工具,需要花很多精力學習和設置。
    • 對于復雜的查詢,ORM 要么是無法表達,要么是性能不如原生的 SQL。
    • ORM 抽象掉了數據庫層,開發者無法了解底層的數據庫操作,也無法定制一些特殊的 SQL。

    參考鏈接:
    ORM 實例教程

    ORM介紹

    總結

    以上是生活随笔為你收集整理的对象关系映射(ORM)介绍理解的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。