一、概述
,就是物件關係對映。把對錶直接進行的操作,變成對持久化類的屬性和方法的直接操作。
很多的專案是基於資料庫的開發,程式中要大量進行表的增、刪、改、查詢的工作。
例如下面一段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.結合原型和資料表 對資料表中的每乙個字段進行增刪改查演練 確保每乙個欄位都存進去...