我的O R Mapping實際開發經驗之談

2021-09-30 02:07:07 字數 2998 閱讀 8339

一、概述

,就是物件關係對映。把對錶直接進行的操作,變成對持久化類的屬性和方法的直接操作。

很多的專案是基於資料庫的開發,程式中要大量進行表的增、刪、改、查詢的工作。  

例如下面一段c#**,從資料庫customerdemo取表customer資料:

string

connectionstring = "data source=william;persist security info=true;initial catalog=customerdemo;user id=sa;password=sasa";

sqlconnection thesqlconnection =

newsqlconnection(connectionstring);

string

query = "select customername from customer where customerid=1";

sqldataadapter thesqldataadapter =

newsqldataadapter();

thesqldataadapter.selectcommand =

newsqlcommand(query, thesqlconnection);

dataset customerdataset =

newdataset();

thesqldataadapter.fill(customerdataset);

datatable cusomerdatatable =

newdatatable();

cusomerdatatable = customerdataset.tables[0];

//判斷資料集是否為空 if

(cusomerdatatable.rows.count>0)

}

thesqlconnection.close();//

//建立資料連線connection

connection conn = datasource.getconnection();

//建立可持久化類工廠

sessionfactory thesessionfactory = configurationfactory.buildsessionfactory(conn);

//例項化乙個customer,並取customerid=1的物件

customer thecustomer = (customer)thesessionfactory.createobject(typeof(customer),」

1」);

//取物件的屬性進行賦值

txtcustomername.text = thecustomer.name;

conn.close();

1、程式設計師

(1)一般的資料庫應用的專案,無非是大量的表、欄位的select、insert、delete、edit的操作。這些操作沒有多大的技術難度,就是耗時間去實現,還要小心謹慎處理,到處用if語句來進行的判斷。把大量重複勞動進行類的封裝,提高開發質量和效率是顯而易見的。

(2)所需要編寫的持久化類和對應的xml對映檔案,都可以通過工具自動的生成,極大的減少程式的**量。實際的使用中,大約會減少20%的**量。

(3)程式設計師的重複勞動減少,程式設計師能有更多的精力放在其它技術方面。

(4)(5)

讓程式設計師在乙個良好的物件導向開發的環境中成長,培養他們物件導向開發的思維和編碼經驗,使物件導向的思想在平時的專案開發中潛移默化。

2、系統分析員

(1)有利於系統分析員用在系統分析、設計、編碼、測試中全部用物件導向來解決。不會再出現分析設計文件寫了大量的類,到編碼階段,還是在源程式看到大量的sql語句滿天飛。有了物件的持久化的解決方案,系統分析員能沒有後顧之憂,全面用物件導向來設計分析。並且編寫出來的uml文件非常明了簡潔。

(2)(3)

(4) (5)

資料庫和專案源程式耦合性大大的降低後,使專案能更容易的移植到其它資料庫中。

3、專案經理

(1)(2)專案更容易的實現框架、元件重用和積累,提高開發的質量和效率。

(3)可以實現部分介面(如asp、jsp)的源程式自動生成。

的重要部分是表與持久化類之間的對映,現在主要有兩種方式:

一種是單純的持久化類對映:表與持久化類之間的對映是通過硬編碼的方式寫成類,編譯後執行的。這種方式用起來直觀明了,程式設計師可以控制的部分多,執行速度快。缺點是如果更改表的字段、型別等,需要直接更改類裡面的**,再編譯後才能執行。

另外的一種是通過xml和持久化類一起來實現對映。持久化類是對映出來的實體類,大部分關於類屬性的型別、長度、是否能修改、是否可以插入等,和表字段的型別、長度、是否允許為空等,都通過xml的檔案來表達。表的對映關係需要改動時,只需改xml部分,持久化類不需要改動及重新編譯。現在流行的是這種方式,它很靈活,耦合性更加低。以下是grove.net對映的一段的一段**:

持久化類:

public class customer

set

}

[datafield("customername")]

public string name

set

}

}

xml檔案的對映部分:

<?xml version="1.0" encoding="utf-8"?>

customer

從表初始化乙個

持久化類

的步驟:

1 讀取資料庫的表 -> 2 在xml檔案找出所對映的

持久化類

,並初始化該類-> 3 逐個讀取表的欄位名,在xml中找出所對映的持久化類的屬性-> 4

通過類的反射,把錶的字段的資料賦值給類的屬性

把乙個持久化類

的資料儲存到表的步驟:

1 通過xml檔案,找出

持久化類

所對映的表-> 2 通過反射,逐一讀取類屬性所對映的表字段-> 3 把屬性的值賦值給所對映的表字段-> 4 儲存表的資料到資料庫

Django實際開發

建立虛擬環境 python m venv 虛擬環境名 啟用虛擬環境 虛擬環境名 scripts activate 安裝django 解決安裝超時的方法 2 pip default timeout 延長的時間 install 4.利用django建立專案 django admin startobjec...

Git 在 實際開發 中的實際流程

master 通常只是用於對外發布專案的新版本 代替單一的 master,日常開發應該在另一條分支上完成,我們把開發用的分支叫做 develop 專案正式發布後難免會出現 bug,這時就需要建立乙個分支,進行 bug 的修補 hotfix 應該從 master 中分離出來,bug 被修補後,再合併到...

實際開發過程

1.講解使用者需求 2.業務流程圖 3.根據原型 結合業務流程對照原型進行講解 1.分析業務實體 2.根據業務實體進行建表 表設計包含 實體屬性和業務屬性 3.深刻理解需求原型中的業務走向 4.分析表之間的關聯關係 5.結合原型和資料表 對資料表中的每乙個字段進行增刪改查演練 確保每乙個欄位都存進去...